1 avm运行有两个步骤,一个是load 一个tag立面的ABC(actionscripte byte code) DATA代码 并即时编译成pc code来执行。二是显示对象到舞台上。而framerate又是固定的,如果第一步执行代码太长或者第二部显示对象太大都会影响游戏体验。所以从内存和cpu的角度上看,有几个方面是值得优化的。
(1) 内存
a 显示对象本身的大小,比如sprite和shape
b 对象的复用 比如bitmapdata,因为flash有这样的功能,当一个bitmapdata已经之前用过了,第二个对象也可以直接用它,并且不增加内存。所以在游戏里面将位图或者swf逐帧转换,随时引用。
c 对象池 或者shareObject,可以使得引用速度增加2倍以上。
d 图片本身的大小可以用ps减小。swf可以再矢量图上减小。
e 某些xml文件如果必须在加载游戏开始的时候用到,就可以用zip来压缩加载。zip比多个文件的下载速度快很多。
(2) cpu
a frameRate可以根本上改变游戏的cpu占用
b timer和enterframe最好做到统一调用,全局监听
c 当一个swf在fla中引用时,可以不必要是movieclip,可以当做sprite。具体操作时改变movieclip的继承选项。
d 当一个moviecllip不必要在statge上显示时,如果没有啥stop掉,它仍然会占用cpu最好unloadandstop,这个方法比较彻底的卸载了。
e 一个类立面就只写一个监听,通过判断target来区别