Flash优化笔记

1、利用事件的冒泡机制来简化显示对象的事件监听,可以减少资源开销,避免不必要的内存泄漏
2、使用对象池,减少频繁创建对象带来的内存开销,避免垃圾回收的频繁执行
3、使用位图渲染,对于不形状显示状态变化不多的显示对象使用位图缓存(cacheBitmap为true)
4、屏蔽鼠标事件,对于没与鼠标交互的显示对象应该屏蔽鼠标事件减少资源开销(mouseChild为flase、mouseEnable为false)
5、选择合适的显示对象,内存使用量Movieclipe > Sprite > Shape
6、使用BitmapData的 lock() 和 unlock()
7、对于Array和Vectory来说使用for循环比for each in快速,而使用Object和Dictionary关联数组进行循环操作时for each in 比for循环快,对于for in不建议使用,它在各数组操作中是最慢的
8、在循环避免重复计算数组的长度而是用确定的一个数值
    如for(var i:int=0,len:int=arr.length,i 9、显式进行类型转换,对于连续整形变量相加如:
    var a:int,b:int;
    (1) b=a+a+a;
    (2) b=int(a+a)+a;
    (3) b=a+a;b+=a;
    用时 (1)>(2)>(3)
10、在整个程序的生命周期中都不会改变的变量用const定义为常量
11、使用乘法代替除法
12、删除对象时将其所有的引用和事件监听删除,其子对象不能有外部引用,否则不被回收
13、用事件管理类管理所有对象的事件监听,方便管理与删除
14、资源加载采用队列顺序加载
15、尽可能的用回调函数代替事件处理,事件派发需要创建Event对象并且会从舞台的root遍历事件的目标对象,比较耗cpu和内存。
16、尽可能的减小重绘区域,对不可视或超出可视区域的对象移除出显示列表
17、减少显示对象的嵌套,显示里面的嵌套越多,flashPlayer就要耗费越大的性能去计算,减少依靠父对象对子对象做操作,比如相当于父对象的定位。不仅要计算子对象还要计算父对象

你可能感兴趣的:(AS3,Flex,AIR)