2012年5月23日星期三

不同版本 Flash CS 5/6 包 TLF 輸出 SWC 與使用時遇到的問題


測試一種情況:
step 1, FLA 1 建立 TLF 文字欄位,被包進 MC,此 MC 指定類別為 "ui.MC1"
step 2, FLA 1 輸出 SWC
step 3, FLA 2 引用 SWC 1
step 4, FLA 2 時間軸上 AS 程式碼如下,動態建立 ui.MC1 放到場景上

import ui.MC1;

var a:MC1 = new MC1();
a.x = a.y = 200;
addChild(a)

當 FLA 1 / 2 分別為 Flash CS 5.0 / 6.0 時,對 TLF SWC 的引用方式為 RSL / Merged,有以下差異:

()輸出含TLFSWC
()使用SWCFLA
CS 5.0
(TLF 1.0 RSL)

Warn 1
CS 5.0
(TLF 1.0 Merged)
CS 6.0
(TLF 2.0 RSL)

Warn 1
CS 6.0
(TLF 2.0 Merged)
CS 5.0
(TLF 1.0 RSL)
OK
OK
OK
OK
CS 5.0
(TLF 1.0 Merged)
OK
OK
OK
OK
CS 6.0
(TLF 2.0 RSL)
Error 1
Error 1
Error 2
Error 2
CS 6.0
(TLF 2.0 Merged)
OK
OK
Error 2
Error 2

Warn 1:

Warning: No libraries were linked as Runtime Shared Libraries (RSLs) because of your publish settings: Export SWC



Error 1:

VerifyError: Error #1053: 不合法覆寫 flashx.textLayout.property.EnumStringProperty 中的 hash。

ReferenceError: Error #1065: 變數 MC1 未定義。

ReferenceError: Error #1065: 變數 Font_9 未定義。

ReferenceError: Error #1065: 變數 MainTimeline 未定義。



Error 2:

TypeError: Error #1034: 強制轉型失敗: 無法將 flash.display::MovieClip@34529f21 轉換成 fl.text.TLFTextField。
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at ui::MC1()
at Untitled_fla::MainTimeline/frame1()

2012年4月6日星期五

將多支 swf 包進同一支


最近嘗試將現有的 web flash game,打包成 iOS 使用的 ipa,不過遇到一個問題在於,web 應用有時為了模組切割、資源管理等因素,會切分成多個 *.swf 檔案再動態載入,然而在 ipa 中雖然可動態載入包在同一 ipa 內的 *.swf,但這些外部 *.swf 卻不允許帶有任何程式碼。

我們可以嘗試以下作法:

HOWTO: Join multiple SWF files into one with AIR for iOS
http://www.flashrealtime.com/how-to-join-swf-files-air-ios/

但我仍覺得有點複雜,而且牽扯到其他程式技術、解決方案,所以想了以下作法。

2012年3月21日星期三

筆記:Spaced Away game in Stage3D/Flash launched on iOS App Store

以下是 Spaced Away 的訪問內容:

Spaced Away game in Stage3D/Flash launched on iOS App Store
http://www.flashrealtime.com/spaced-away-stage3d-flash-ios/

針對此文章,我稍作筆記如下:

筆記:Angry Birds for Facebook

以下是 Angry Birds for Facebook 的訪問內容:

Exclusive Interview with Ville Koskela the Lead Flash Programmer of Angry Birds for Facebook
http://www.flashrealtime.com/interview-angry-birds-rovio-ville-koskela/

針對此文章,我稍作筆記如下:

2012年1月4日星期三

Flash 匯出連續 PNG 圖檔

需要將 MovieClip 的影格,以連續圖檔的方式匯出使用,懶得自己寫 JSFL,找了幾篇文章:

Batch image exporting from .fla
http://journal.reallyenglish.com/2010/01/30/batch-image-exporting-from-fla.html

JSFL for Exporting Layers as Individual PNGs
http://summitprojectsflashblog.wordpress.com/2008/11/03/jsfl-for-exporting-layers-as-individual-pngs/

Export Flash library items as PNG’s with JSFL
http://abitofcode.com/2011/11/export-flash-library-items-as-pngs-with-jsfl/

最後組出以下程式,
將主時間軸上,每個 layer 的每個 frame 都會獨自輸出一張 png 圖檔,輸出檔名是由 layer.name 與 frame 組合而成。

2011年11月29日星期二

初探 Unity3D

最近開始看 Unity3D,原因:

  • 未來的藍圖中,預計會支援可輸出 Flash
  • 開發工具,免費,除非你要用到 Pro 級功能,版本比較:http://unity3d.com/unity/licenses.html
  • 有了視覺化開發工具,至少調整物體座標、貼圖、增加粒子引擎、設定物理碰撞...都可以輕易的達成
  • 若要自己寫 Script,它支援 JavaScript、C#、Boo Script,雖然第三種聽都沒聽過,不過能 google 到的範例大多以 JS 寫成,上手不難
  • 若有天想發佈到 iOS / Android 平台
  • Web Player 很小,就算未來對 Flash 輸出的支援程度有限制,也可考慮直接輸出 Unity3D 自己的版本,安裝 plug-in 時不用重新啟動瀏覽器,無痛

2011年11月14日星期一

使用 SecureSocket 連接 Socket Server - Part 2

繼上一篇 使用 SecureSocket 連接 Socket Server 後,實際放到網路環境測試時,這才發現到,透過 SecureSocket 向 Socket Server 索取 policy file 時,也會經過編碼,所以 Socket Server 必須做些調整以支援此機制。

2011年11月3日星期四