十一月
  ★ 博客搜索|Search
Sword's Blog
  首页 |
FlashLite入門
作者:Sword's Blog 发表时间:2005-8-6
這一篇是寫給開發人員看的,如果你是一般用戶,想知道怎麼在手機上看Flash動畫,很抱歉,環境還沒成熟,還要再等待一段時間,等FlashLite內建在手機裡、等電信公司開始採用FlashLite或FlashCast技術。那接下來我們進入正題吧!

準備工作
開始製作FlashLite內容之前,要先準備好下面這些東西:
• Flash MX 2004 Professional
• FlashLite 1.1 Content Development Kits
Flash MX 2004應該大家已經都安裝了。CDK可以在Macromedia 網站上免費下載。
安裝CDK (如果你已經安裝過Flash 7.2 update就可以跳過這個步驟。)
1.下載完後解開壓縮檔,把Flash_Lite_1.1_CDKFlash_Lite_authoring_updater目錄下的FlashLite1_1.dll,拷貝到下面的位置。
• Windows:
C:Program FilesMacromediaFlash MX 2004languageConfigurationPlayers
• Mac OS X:
Macintosh HD::Applications:Macromedia Flash MX 2004:Configuration:Players

2.拷貝FlashLite1_1.xml到下面的位置。
• Windows:
C:Program FilesMacromediaFlash MX 2004languageConfigurationPlayers
• Mac OS X:
Macintosh HD::Applications:Macromedia Flash MX 2004:Configuration:Players

3.拷貝DeviceMsg.cfg到下面的位置。
• Windows 2000/ WindowsXP:
C:Documents and Settingsuser nameLocal SettingsApplication DataMacromedia
Flash MX 2004languageConfiguration
• Windows 98(SE):
C:WindowsProfilesuser nameApplication DataMacromediaFlash MX 2004
languageConfiguration
• Macintosh:
Macintosh HD::Users:user name:Library:Application Support:Macromedia:Flash MX 2004:
language:Configuration:

如果想要在手機上測試,還要再弄到這兩樣:
• 支援FlashLite的手機一隻
• FlashLite Player
手機可以選擇Symbian或是MS Smartphone這兩個系統,可以買Nokia 7610、SonyEricsson P910i、Dopod 575等等。一般來說,MS Smartphone播放Flash的效能較佳。先前只要加入了Macromedia Mobile Developer Program,再把你的手機型號和IMEI(在手機上輸入*#06#,就可以知道IMEI),寄到mobiledeveloper@macromedia.com,就可以收到FlashLite Player。不過前幾天Macromeida暫時不再提供FlashLite Player給Developer測試,要等到明年(2005)一月才會再度開放。FlashLite Player可以在Macromedia的網路商店購買,價格是usd10。

開新檔案
一般而言,要做FlashLite內容,我都是從Create from Template開始。Flash MX 2004雖然在發布的時候,已經內建了一些行動裝置的Template,不過種類有點少。有網友自己做了一些Symbian S60手機的Template,可以到http://www.flash-lite.de/downloads.html下載。如果你想自己開新檔案,可以把更新率設定在20fps,頁面尺寸則依照手機的解析度設定,比如Nokia 7610是176x208。Player則依照手機上的FlashLite Player版本做設定,比如FlashLite 1.1。

使用者介面的差異
手機不比PC,沒有完整的QWERTY鍵盤、沒有滑鼠,這點要特別注意。在手機上能夠操作的按鈕只有數字鍵0-9、方向鍵、確定鍵 (Enter)、*、#和左右軟鍵 (pageUp、pageDown)。

Flash 4 ActionScript
因為手機的運算速度還不夠快,所以FlashLite只能夠使用Flash 4的Action(某些情況下使用Flash 5的語法也行,不過不保證運作一定正常。)。FlashLite支援的Action指令和屬性,可以參考CDK裡面Macromedia Flash Lite 1.1 Authoring Guidelines第61頁。

使用斜線語法
自Flash 5之後已經不建議使用tellTarget應該改用點語法。不過在FlashLite上就不同了,歡迎使用tellTarget。

假設現在場景上有一個叫做box_mc的MovieClip,這個MovieClip裡面包含了另一個叫做ball_mc的MovieClip。ball_mc的時間軸上有個變數叫做weight。主時間軸上有個變數叫做gravity。

指定時間軸:

絕對路徑
如果要指定ball_mc的時間軸:
•點語法
_root.box_mc.ball_mc
•斜線語法
/box_mc/ball_mc/

相對路徑
如果在ball_mc的時間軸上要指定主時間軸:
•點語法
_parent._parent
•斜線語法
../../

指定變數:

絕對路徑
如果要指定ball_mc的時間軸上的weight:
•點語法
_root.box_mc.ball_mc.weight
•斜線語法
/box_mc/ball_mc/:weight

相對路徑
如果在ball_mc的時間軸上要指定主時間軸上的gravity:
•點語法
_parent._parent.gravity
•斜線語法
../../:gravity

設定變數:

假設要讓ball_mc時間軸上的weight要變成5:
•點語法
_root.box_mc.ball_mc.weight=5
•斜線語法
tellTarget("/box_mc/ball_mc/")
{
weight=5;
}


按鈕的事件處理程式
前面說過在手機上能夠操作的按鈕只有數字鍵0-9、方向鍵、確定鍵 (Enter)、*、#和左右軟鍵兩個軟件。按鈕的事件處理程式在FlashLite內,只能直接寫在按鈕上on(release),不能夠使用onRelease這樣的寫法。
比如按了”9″ 之後,螢幕上的按鈕就要被按下去。可以在按鈕上這麼寫:
on(keyPress "9")
{
trace("你按了9!")
}

如果要驅動軟鍵,必須在主時間軸加上FSCommand2( “SetSoftkeys”, left, right )。keyPress的對應左軟鍵為pageUP,右軟鍵為pageDown。
如果希望能夠用方向鍵遍訪每個按鈕,按確認時就能夠按下被框起來的按鈕。則必須在按鈕的事件處理程式上加上release。如:
on(release, keyPress "5")
{
trace("你按了5!或是當黃色方框停留在這個按鈕上的時候,你按了確認");
}

迴圈
可以使用for和while。
不過記得別這樣寫:
for(var i=0;i<10;i++)
{
trace(i);
}
因為FlashLite不認得var。

模擬陣列
在FlashLite裡沒有陣列可以使用,我們可以這樣模擬。
player1="K. Bryant"
player2="C. Atkins"
player3="L. Odom"
player4="C. Butler"
player5="C. Mihm"

for(i=1;i< =5;i++)
{
trace(eval("player" add i));
}


模擬setInterval
setInterval要Flash 6才有支援,我們可以在兩個frame裡面寫加上類似下面寫法的程式碼來模擬。例如:
frame 1:
tellTarget("/box_mc")
{
_y++
}
frame 3:
gotoAndPlay(1);

用Call()取代Function
FlashLite沒辦法自訂函式,只能使用Call()。
比如,你想定義一個打招呼的函式,假設在Flash 5原來是這樣寫:
function hello()
{
trace("hello!");
}
在FlashLite要改成這樣寫:
將一個frame的label設定為hello,並在這個frame上這樣寫:
trace("hello!")
呼叫的時候,這樣寫:
call("hello")

Call的限制在於沒辦法傳參數進去,必須要另外想辦法。

在手機上測試
FlashLite模擬器和手機上播放同樣檔案的結果很可能不同,比如手機上的播放速度不如預期,或是圖片出不來。所以最好邊做邊測,才不會白費功夫。有時候在手機上播放Flash的時候,會出現錯誤訊息例如:Problem with content: 6,這代表JPEG圖檔太大了。以下是錯誤訊息的意義。
1. Out of memory
2. Stack limit reached
3. Corrupt SWF data
4. ActionScript stuck
5. Infinite AS loop
6. Bad JPEG data
7. Bad sound data
8. Cannot find host
9. ActionScript error
10. URL too long

圖形處理
畢竟手機的運算效能還不夠強,盡量讓圖形簡單一點,少用點漸層、半透明,必要時把向量圖轉為點陣圖,才能確保播放的效果和你的預期相同。

文字處理
比較小的文字可以選用點陣字型,並且把Alias Text選項打勾。

參考資料:
Tips for Using Macromedia Flash 4 ActionScript for Flash Lite-Macromeida DevNet
Macromedia Flash Lite 1.1 Authoring Guidelines (在CDK裡面)
閃客帝國 - FlashLite 1.1 FSCommand 2用法列表 (上)
閃客帝國 - FlashLite 1.1 FSCommand 2用法列表 (下)


PS:转至阿修的部落格
[所属栏目:flash相关] | [返回首页]
共 1 篇日志 | 每页 1 篇 

≡≡≡≡≡ 评论(共 {Count}条) 我要评论
·{CommentAuthor} {CommentEmail} {CommentUrl} {CommentIp} {CommentTime}
{CommentContent}
  站长执笔
5DBlog主页