2010年12月29日 星期三

以 Flash 開發 iOS App (2)

記錄幾個眉角

openSSL
錯誤訊息:unable to write 'random state'
解決方式:find the location of cmd.exe, right click and run as administrator

發佈.p12檔時訊息:Enter Export Password:
意思是要你設定一組密碼,Flash CS5發佈時需要輸入。

AIR
錯誤訊息:An attribute or element contains an invalid value in the application descriptor file.
解決方式:檢查 xxx-app.xml 裡,專案名稱是否有空白(space)





2010年12月25日 星期六

以 Flash 開發 iOS App (1)

第一個造訪的地方一定是:

下面有4步驟:

Users of Flash Professional CS5 should get the Flash Professional Update for iOS from the Flash Professional downloads page.

2.Read the release notes and developer FAQ for detailed information.



看完FAQ發覺限制不少,麥克風、照相機...將無法使用,意味著你無法開發類似LOMO的APP,就連影像合成等需要濾鏡(PixelBender Filters)的可能也會有問題,但還是可以回頭看看2010百大App來安慰自己。

其實 Flash 開發 Andorid App 也有類似窘境,只能請Adobe多多加油。

加入 iOS Developer Program

第一次繳年費入口(只有英文):
http://developer.apple.com/programs/ios/

最後會導回台灣蘋果Apple Store做刷卡(台幣3,200元/1年)
沒幾天就在信箱收到啟動碼(Activation Code)

接下來遇到很多人都遇到的問題,中文地址跟英文地址對不起來,導致啟動失敗,
必須要致電客服才能解決。
為什麼知道是地址問題?第一是拿錯誤訊息去Google出來的,第二是香港客服跟我講的。

客服請我把訂單(含訂貨、送貨地址)Print Screen下來,寄回給他就可以了。
客服收到後會寄email通知,在拿原啟動碼去啟動就可以了。

[參考]

2010年10月1日 星期五

[AS3]記錄一個過程

1.先來看一個簡單的結構,單純 index 載入 sub

2.首先開啟 sub.fla,在Library內置入一個MC,並Linkage之(Symbol1)



3.設定 sub.fla 的 Document class



4.編寫 Sub.as,內容也很單純,trace 剛建立的類別



5.Ctrl + Enter 的結果,沒問題。



6.接下來,開啟 index.fla,設置 Document class



7.編寫 Index.as,只宣告一個 sub 就好。



8.回到 index.fla,Ctrl+Enter 測試一下,發現編譯錯誤,說 Symbol1 未定義。



9.修改 Sub.as ,使用 getDifinitionByName(),即可解決。



10.接下來,才是真正載入 sub.swf



11.這次是發生 Error,說 Symbol1 未定義



12.解法是使用 LoaderContext,即 Loader.load() 的第二參數!
var loader:Loader = new Loader();
var loaderContext:LoaderContext;
loaderContext = new LoaderContext(true, ApplicationDomain.currentDomain);
loader.load(new URLRequest("sub.swf"), loaderContext);



13.參考

2010年8月20日 星期五

SWFAddress getValue 問題

經過簡易測試,必須先經過監聽 SWFAddressEvent.INIT 或 SWFAddressEvent.CHANGE
才能使用 SWFAddress.getValue() 否則一律回傳 "/"

順便問一下,SWFAddress 有提供方法抓取上一個 address 嗎?或是只能手動(每次記錄)?
謝謝。

移除 PV3D 專案的版本等Info訊息

~奶綠茶~milkmidi 說 (下午 03:24):
org.papervision3d.core.proto.SceneObject3D
第39行
PaperLogger.info( Papervision3D.NAME + " " + Papervision3D.VERSION + " (" + Papervision3D.DATE + ")\n" );
把他拿掉就可以了