作者:luar
原文链接:http://www.luar.com.hk/flashbook/archives/001228.php
要開發Flash Lite內容,大部分人頭痛是那Flash 4語法,對於資深Flash開發者來說,Flash 4不難寫,程式設計美麗的地方,就是同一個需要,有很有多不同寫法,窮則變,變則通。相反,在手機上跑的東西,效能和記憶體佔用才是最大困難所在,往往就是要開發者用智能去克服效能的問題。所以,Flash 4語法是門外的人看以為的問題,克服效能才是平日Flash Lite開發者奮鬥的目標。
好了,廢話說完。Flash Lite ActionScript是怎樣?就是Flash 4 ActionScript、編譯器幫助下一些Flash 5指令、手機屬性和FSCommand2。
Flash 4 ActionScript
包含以下東西:
影片(play, gotoAndStop, loadMovie等)
變數定義set("varName", varValue)
while和if
Movie Clip控制getProperty和setProperty
一些String簡單操作(length,substring)等
路徑語法(tellTarget, /, ../, :)
loadMovie, loadVariable
注意:不支援startDrag, stopDrag, _dropTarget, soundBufTime, _url和String()轉換。
Flash 5 Object
在Compiler幫助下,有一些Flash 5指令可以用,它們在編譯時,轉為Flash 4語法,包括:
更多邏輯判斷(for, do while, switch)
_root, _parent
MovieClip.屬性=n,留意關於Movie Clip語法,只限在讀取和修改屬性上,如果要控制MovieClip播放或跳幀,仍然要用tellTarget
變數定義可以直接用varName = varValue
手機屬性和FSCommand2
這些都是一些取得手機資料,和控制手機(例如震動、發SMS等)的指令,如果平常用Flash Lite開發遊戲,比較常用的有:
震動:fscommand2( "StartVibrate", time_on, time_off, repeat),fscommand2("StopVibrate");(有些手機不支援震動,例如:Nokia 7610, N-Gage)
全熒幕:fscommand2("FullScreen", true);(只有Standalone Flash Lite Player支援,例如Nokia手機;在Browser裡執行的不支援,例如Sony Ericsson手機)
功能鍵名字設定:fscommand2("SetSoftKeys", "Start Game", "Quit");(即熒幕左右下角出現的字眼,在非全熒幕時才看到)
由Flash 4 Port到Flash Lite
開始編程Flash Lite時,往往由以前的Flash 4東西開始,例如將以前的東西改為Flash Lite版,在這些轉移過程中,要注意的地方:
手機沒有滑鼠,所以所有靠Click操作的東西,要想辦法改為鍵盤
Flash Lite自動支援方向鍵去由一個按鈕跳去另一個按鈕,同時將該按鈕顯示在Over狀態,十分方便。開發遊戲時常用,例如主畫面有「開始遊戲」、「載入遊戲」、「離開」,用方向鍵就可以上下控制。注意一:有些手機不支援Four Way Navigation with wraparound,即「離開」按「下」不可以直接跳到「開始遊戲」,在Flash Pro 8的Flash Lite Emulator會提示那手機是否支援。注意二:通常在主畫面,想預設「開始遊戲」在Over狀態,但如果只靠Flash Lite的按鈕自動用方向鍵控制,是沒法做到,加上正因為注意一,想做一個可以wraparound的選單,我還是用Movie Clip和自行捕捉方向鍵來做主畫面的選單
影片大小,通常先考慮Symbian 60大小,即全熒幕有176x208
一般手機效能只有8-10fps,遇到有alpha漸變時,會再慢一點
文字一定要用Pixel Font才能夠清晰,文字x, y位置一定要是整數
SWF檔案大小目標在100Kb內
Flash Pro 8的Flash Lite Emulator基本上可以模擬手機大部分操作,除了關於手機屬性和FSCommand2控制手機硬體,特別注意Emulator不能模擬效能,所以它比手機跑得更順和不知道耗用記憶體的問題,所以測試效能和記憶體消耗,一定要回到手機測試
在Frame 1加_focusrect = 0,可以消除控鈕焦點時的黃色邊框
沒有Delete可以用來刪除變數,只好將它改為var=""
String連結要用add,不可以用+
使用Bitmap圖,先在Photoshop進行優化壓縮,例如減少顏色至8/16/64色可以大大減少File Size,避免出現Problem with content: 6錯誤(Bad JPEG data,JPEG圖檔太大)
fscommand2("SetSoftKeys")可以因為遊戲或應用不同狀態,在該處Frame使用,即可以不停改變功能鍵名字
有些手機不能支援連續按鍵(即按下不釋放),例如:SonyEricssion Z800i
方向鍵、Enter、PageUp、PageDown基本上是常用,我會做好一個Flash Template,Stage外有7個透明按鈕(只定義了Hit Frame),加入了on (keyPress "...") {...}
我發現很多Flash Lite範例都沒有聲音,這方面跟平常Flash做法很不同,所以比較少人涉獵?我會在下一篇詳細再講