AS3优化技巧总结(不包括数据库和网络)

参考自官方的 《优化 Adobe Flash Platform 的性能》


1、非交互式简单形状,使用Shape对象。


2、不需要时间轴的交互式对象,使用Sprite对象。


3、尽可能重复使用对象而不是重新创建对象。



        

       使用下面的代码,重复使用area对象。

        


4、尽量使用Array或Vector对象池来重用对象。


5、尽量少启动垃圾回收器。

       

        当对象设置为null时,垃圾回收器会自动回收内存。一般当可用内存比较低时,才调用垃圾回收器。

        另外要注意的是,在将对象设置为null时,先确保对象没有被使用(监听事件等)。

        

6、使用位图对象(BitmapData)有一个方法可以立即减少内存,当位图使用完之后,不会再使用时,直接调用idpose()方法,然后将位图对象设置为null。


7、避免使用滤镜。

        将滤镜用于显示对象时,运行时将在内存中创建两个位图。尽可能使用Adobe Photoshop来模拟滤镜。

               


8、如果不使用显示对象,那么进行removerChild和removeEventListener操作。


9、通过舞台的Event.ACTIVATE 和 Event.DEACTIVATE 检测对象是否失去焦点,进行激活和停用对象。


10、当使用交互式对象(MovieClip或Sprite对象)时,运行时会检测并处理鼠标的交互。当屏幕上有多个交互对象,特别是重叠时,检测鼠标的交互会占用大量的CPU。所以在某一时刻,无需鼠标交互的对象禁用鼠标交互。mouseEnabled = false;和mouseChildrn = false;


11、使用动画,则在Enter_Frame中执行,不是动画,则使用计时器。


12、计时器的优化。

        当有多个时间间隔操作,例如100毫秒执行一次和200毫秒执行一次,那么只使用一个计时器,而在计时器当中使用标记,判断执行哪些操作,而不要使用两个计时器。

        


13、在移动设备上,尽量不使用补间动画。


14、尽量使用Vctor类而不使用Array类。下面代码显示出来了两者的不同。

       

       

       最后注意,当固定了矢量大小时,执行的效率会更高。var coordinates:Vector.<Number> = new Vector.<Number>(300000,ture);


15、绘制有路径的图时,使用drawPath和Vector。而不要使用moveTo、lineTo。


16、利用事件冒泡可以帮助优化代码的执行时间。


17、当String类方法可用时,它的运行速度比等效的正则表达式快且不需要创建其他对象


18、使用TextField类的text属性时,使用appendText()方法,而不是 += 运算符。当最佳的方法是使用String对象来处理需要多次处理的文本控件,再传值给文本控件。


19、尽量避免使用Flex框架或任何大型第三方AS库。


20、尽量避免将显示对象放在后台,如果不使用就将他们从显示列表中删除。


21、使用alpha属性时,尽量避免使用alpha混合效果。


22、帧速率相关的优化。

        如果是Flex框架,使用默认值。

        如果有动画,20帧/秒~30帧/秒

        不包括动画,12帧/秒。

        应用程序最小化,则设置1帧/秒。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值