要开发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做法很不同,所以比较少人涉猎?我会在下一篇详细再讲
上一篇:Flash lite 3-创建视频内容(english) 下一篇:Flash Lite网络载入数据大小限制