2012-07-29

Eclipse 語系設定

參考自 "Eclipse 設定編輯畫面的語系 (解決中文亂碼問題)"


Eclipse 語系設定的優先權:

單一檔案的語系編碼 > Project 語系編碼 > Workspace 語系編碼

1) Workspace 語系編碼
  • 開啟 "偏好設定" (Preferences)
  • 左側選單 Generals -> Workspace
  • 右側 Text file encoding 設定

2) Project 語系編碼
  • 專案開啟後,選主選單 Project -> Properties
  • 左側選單點選 Resource
  • 右側 Text file encoding 設定

3) 單一檔案的語系編碼
  • 於 Package Explorer 面版,在文字檔上按右鍵
  • 於 彈跳出來的選單面版,點選 Properties
  • 左側選單點選 Resource
  • 右側 Text file encoding 設定
另外可依副檔名設定編碼:
  • 開啟 "偏好設定" (Preferences)
  • 左側選單 Generals -> Appearance -> Content types
  • 右側 Content types 欄選定文字檔類型
  • 右側 Default encoding 輸入編碼設定

2012-07-19

Publishing APK for Android with ANE included by using Flash CS6

Select Menu: "File > Publish Settings > ActionScript Settings"
Select Tab: "Library path"
Click icon button: "Add New Path"
Click icon button: "Browse to a Native Extension (ANE) file"

After browsing and selecting an ANE file, the file will be added in included files ( Checking "General" tab in "AIR for Android Settings"  ).

Publishing APK by using "AIR for Android Settings" panel, the ANE will be added in the APK file.

2012-07-18

AIR native extension for android (Java)

官方的教學文件裡有一篇 Developing native extensions for Adobe AIR, 裡面的教學算很詳盡, 但有些細節不太正確, 以下是個人初次試做的心得。

官方建議在 Flash Builder 4.6 上安裝 Android Developer Tools 並直接在上面開 3 個 projects: Android Application Project, Flex Library Project 和 Flex Mobile Project。
在 Flash Builder 開 Android Application Project 遇到的狀況:
1. 以系統管理員身分執行 Flash Builder 才能安裝 plug-in。
2. 只能安裝 Android Developer Tools, 無法安裝 Android NDK plugins (問題不明)。
3. 撰寫時要切換到 Java perspective (個人在 Flash Builder 上開 Android Application Project 有莫名的排斥 XD )。

個人是在 Eclipse 上做 Android Application Project 開發:
1. 建立專案時選 Android Application Project。
2. 取消勾選 "Create custom launcher icon", 勾選 "Make this project as a library"。
3. 選 BlankActivity ( Create Activity 應該可以取消)。
4. 將 FlashRuntimeExtensions.jar 加到 libraries 裡 ( 此 jar 位於 AIR SDK 的目錄裡, 如 C:\air_sdk_33\lib\android ) 。
5. 依劇規則撰寫類別檔之後, 我們要的 jar 檔會在 /bin 目錄裡自動生成。

Flex Library Project:
1. 在 Flash Builder 上建立 Flex Library Project。
2. 依規則撰寫類別檔之後, 我們要的 swc 檔會在 /bin 裡。
3. 如官方教學, 在專案的 /src 裡新增一個 extension.xml。例如:
<extension xmlns="http://ns.adobe.com/air/extension/3.1">
  <id>com.riarock.string</id>
  <versionNumber>1</versionNumber>
    <platforms>
      <platform name="Android-ARM">
        <applicationDeployment> 
          <nativeLibrary>shinderstringnative.jar</nativeLibrary>
          <initializer>com.riarock.shinderstringnative.extensions.ShinderStringExtension</initializer> 
      </applicationDeployment> 
    </platform>
  </platforms>
</extension>

打包成 .ane :
1. 將 Android Application Project 裡生成的 jar 檔, 放到專案的 /bin/native 目錄內。
2. 將 Flex Library Project 裡生成的 swc 檔解壓縮 (swc 其實也是 zip 格式), 將 library.swf 放到上一步的 /bin/native 目錄內 (避免打包時, 找不到 library.swf 的錯誤, 理論上打包時應該要自動解壓縮並放到 ane 檔裡才是)。
3. 如官方教學, 在 Flex Library Project 專案的 /src 內新增一個批次檔 package.bat (windows):
set adt_directory=C:\air_sdk_33\bin
set library_directory=C:\Users\shinder\Adobe Flash Builder 4.6\StringANEConnector
set native_directory=C:\Users\shinder\workspace\ShinderStringNative\bin\native

set signing_options=-storetype pkcs12 -keystore "C:\Users\shinder\Desktop\mycert_shinderlin_123456.p12"
set dest_ANE=ShinderString.ane
set extension_XML=%library_directory%\src\extension.xml
set library_SWC=%library_directory%\bin\StringANEConnector.swc

"%adt_directory%"\adt -package -tsa none %signing_options% -target ane "%dest_ANE%" "%extension_XML%" -swc "%library_SWC%" -platform Android-ARM -C "%native_directory%" .
4. 在 命令列中執行  package.bat, 就可以在相同的目錄看到 ane 檔了。
5. -tsa none 的參數可以避免打包時 "Could not generate timestamp" 的錯誤。

測試功能的專案:
1. 在 Flash Builder 上建立 Flex Mobile Project。
2. 在 Properties > Flex Build Path > Native Extensions 加入 ane 檔。
3. 在 Properties > Flex Build Packaging > Google Android > Native Extensions, 勾選 ANE 項目裡的 Package (就是發佈時要包含 ane 檔的內容)。
4. 按 Export Release Build 就可以生成 apk 檔了。

註1: jar, swc, apk 都是 zip 格式, 就可以用 7-zip 之類的工具就查看打包的內容。
註2: Permissions 應該是在 Flex Mobile Project 上設定, 而不是在 Android Application Project 上設定。

2012-07-01

ColorBox 在 IE 上無法正常顯示

夜路走多了, 也會遇到 IE 的 ...
現在網路的測試幾乎都是 Google Chrome 一路到底,IE 能不碰就不碰,但客戶還是很在意的。
用了 jQuery 的小外掛 ColorBox,如死不死在 IE 上就是不 work,網路上找到這篇,原來很多人都碰到了,心裡的訐譙也就少了一半。
我原本 DOCTYPE 開頭為:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
改成以下就 OK 了:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

FB 留言