Luar's Flash Playground:怎樣成為一個Flash Lite Developer(開發篇)
怎樣成為一個Flash Lite Developer(開發篇) (19-08-2005)

要開發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做法很不同,所以比較少人涉獵?我會在下一篇詳細再講

本文章由發表。
意見
"; print "沒有意見。
 "; } ?>
  • luar难道打算也写一本Flash lite的书?向老大拜谟ing...

    Apol於19-08-2005發表

  • No

    luar於19-08-2005發表

  • 写的很好!
    不过我还是要等Flash Lite 2.0.
    提供一些资源地址:
    Flash Lite 1.1 Content Development Kits(CDK)
    http://www.macromedia.com/devnet/devices/ development_kits.html
    模板下载:
    http://www.flash-lite.de/downloads.html

    由亮点於19-08-2005發表

  • 1?早上写的一些回复不翼而飞了,可能是粗心按了预览吧。

    Luar的这篇应该说主要是针对S60上的Flash Lite 1.1吧,对于现在日本广泛采用Flash Lite1.0和DoCoMo的手机而言,情况有所不同,例如:

    1。不支援4方向导航按键(被browser屏蔽掉了)

    2。许多设备具有滑鼠功能,因此可以进行Click

    3。使用手机的设备字体(非像素)可以得到清晰的效果

    4。大部分手机不支持按键重复

    由jinni於19-08-2005發表

  • 我为中国移动做的Flashlite在3G上的测试,目前的Series60 2nd这个系统的Nokia手机,可以通过swf去load 512k的content,速度理想。但是3G的第一次用户鉴权,load 1k的时间要远比load 100k的时间长。

    7yue於19-08-2005發表

同組文章