Flash性能优化

47 篇文章 0 订阅
20 篇文章 1 订阅
Flash性能优化
from:http://hi.baidu.com/miracle5460/blog/item/6a5049f72090b32f730eec27.html

1、改进算法

无论对于那一种程序,好的算法总是非常重要的,而且能够极大地提高程序性能,所以任何性能的 优化第一步就是从算法或者说程序逻辑的优化开始,检查自己的程序是否有多余的运算,是否在没有必要的时候做了无用功,往往从这些方面就能找到那些导致性能 低下的地方。

2、优化细节代码

针对细节总是好的,有一些小技巧比如:

用 var obj:Object = {}; 要比 var obj:Object = new Object();要好;

var arr:Array = []; 要比 var arr:Array = new Array(); 要好;

for (var i:int=0, len=arr.length; i<len; i++) 要比 for (var i:int=0; i<arr.length; i++) 要好;

如果不是为了保存颜色值请不要适用uint这个类型,他的速度比起 int要慢多了;

Array的遍历要比Object或者Dictionary的枚举要快得多。

if (myObj != null) 要比 if (myObj) 的速度要快, for (var i:* in myObj) 比 for (var i:String in myObj) 要快;

Dictionary当 weak key设置为 true 的时候要比 false 慢;

var myText:String = “a” + “b” + “c”;

var myText2:String = [ "a", "b", "c" ].join(”");

在JavaScript里面在IE下后者要更快,但是在AS里面,前者更快!

在循环体内声明变量和在循环体外声明变量其实速度上不会有太大的区别。

3、权衡程序的结构

程序的架构也非常重要,良好的结构会带来性能和程序健壮性的提升,但是有的时候又是相互矛盾 的,例如代码写得过于健壮,反而会影响性能,这个地方需要开发者自己去权衡。

4、小心Flash的重绘

如果你使用的是Flash Player 的Debugger版本,那么请在检查性能瓶颈的时候不要忘记打开显示重绘区域的功能,这将帮你迅速定位到舞台上有那些地方被重绘了,找出没有显示任何东 西却不断重绘的地方,这些地方肯定是有问题的。Flash Player很笨,不会说你把一个DisplayObject的visible设置成false就放弃重绘那个显示对象。所以请保证你的 MovieClip在visible=false的时候为停止状态。有一点很有意思,假设两个现实物体存在 hitTest = true 这样的关系,那么重绘的区域的面积很有可能 > 两者的面积总和!

5、以空间换时间

听起来挺虚,实则很简单,说白了就是以内存换CPU,例如将不变动的值进行保存,免去下次需 要此数据的时候进行再次计算,虽然原理很简单,但是有的时候却很容易疏忽掉,而这个往往就造成你的算法效率低下的问题。

6、记得销毁你的对象

对于非常驻的对象使用完之后记得消除其引用,防止出现内存溢出的问题,往往要做到这一点需要 有一个良好的编程习惯。

7、清除冗余的代码

有些代码可能你的程序一辈子也不会执行到,请把这些没有用的代码或者对象清理掉,否则内存会 被偷偷的蚕食掉。

8、小心使用useBitmapCache = true

一般情况下除非你确定这个显示对象不可能发生变化那么用用也无妨,不过我更推荐自己手动的用 BitmapData将该对象Draw一遍,然后让这个对象彻底消失。否则每次的变动都是巨大的性能消耗。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值