开发环境
Windows 7 SP1
Flash Builder 4.6 with AIR 3.4
Flash CS6 with Update 2
开启GPU加速
位图动画在这个模式下会有明显性能提升。
但矢量图形内容会以最低品质呈现。
MovieClip的性能
Flash CS6 提供将包含多个可见对象转换成扁平位图的功能,我们在对矢量图转换为位图后,在开启GPU加速的情况下,在iPhone 4上测试MovieClip的动画性能。其实并不是想象中那么差劲,甚至比一般的Blit模式绘制动画性能要好一些。
(具体数据待更新)
将MovieClip动画输出为Sprite序列
在有复杂嵌套的动画中,可以考虑直接使用CS6 导出 Sprite序列,在游戏内部来实现Blit模式动画。
有些小技巧,嵌套动画需要以“图形”方式渲染,才能在Sprite序列中看到效果。
Sprite序列导出的位图尺寸尽可能的小,选择合适的导出选项。
不建议超过2048×2048,iPad1和iPod Touch4会因为内存问题,导致Crash。
动画极限性能方案
预先将动画的每帧位图展开,保存在动画帧为单位的数组中,监听EnterFrame来更新显示。
震动模式游戏静音
保持游戏中界面常亮
开启自动旋转
如果是横屏游戏,丢弃内建竖屏转向处理。
使用StageWebView
对与文字内容的初始大小,需要在内容HTML中设定meta标签。
使用StageVideo
在游戏启动Intro视频时我们使用StageVideo来播放,但在开发机ADL中并不存在这个组件。开发机中测试逻辑可以选择Video组件来测试,API基本保持一直。
注意:StageVideo是整个可见对象的最下面,界面上的背景也会遮住他。
对于播放的视屏格式可能存在问题,可以选择
对视频进行一次重编码。
使用StageText
对于要求特定输入软键盘时,需要使用StageText这类系统输入框。
注意:StageText呈现在所有显示对象最上层。
下列代码为指定确认按钮文字,以及软键盘为数字类型。
禁用内建的键盘行为
软键盘触发的相关事件
SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE
SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE
获取软键盘的显示区域
stage.softKeyboardRect
使用原生的Alert提示
由于使用到原生的StageText,在显示对象最上层,提示框只能使用原生控件进行遮挡。
选择一款ANE扩展。
其他总结
内存方面也未出现明显问题,确保好SWF没有出现内存泄漏就好。
在定位一些和设备相关的特性问题时,可以选择WIFI无线连接进行断点调试。
在有丰富Flash资源(AS3)的情况下,将程序移植到iOS相当的容易。跨平台优势凸出。
最新的AIR开发环境支持原生的iPhone模拟器,开发起来会更加方便,前提是需要Mac OS X操作系统。
Flash开发iOS程序和游戏趋于成熟,从SWF转成原生的iOS原生程序,未发现明显的转换过程导致的兼容性缺陷,整体顺利。