Flash专栏: 基础教程 | 技巧运用 | MTV实例教程 | 游戏实例教程 | 实例教程 | AS教程(new)
photoshop专栏: 基础 | 进阶 | 技巧总汇 | 精彩实例 | 文字特效 | 滤镜魔术 | 实际应用
网页设计: Dreamweaver教程 | FireWorks教程 | CorelDraw设计 | Freehand/Illustrator教程 | 音乐转换教程
首页 | Flash专栏 | Dreamweaver专栏 | FireWorks专栏 | photoshop精彩教程 | CorelDraw教程 | Freehand/Illustrator教程 | 音频视频制作教程
 
Flash专栏>Flash基础教程>AS教程:ActionScript优化

  日期:2009-08-18 15 作者: 来源:网页教学网

对ActionScript优化发现了一些有趣的结果,尽管没有新的技术,却是点小技巧,能提高运行效率

数组 Array indexing

下面是一个简单的过程

private function method1() : void
{
var tmpVar:int;
for(var i:Number=0; i<testArray.length; i++)
{
tmpVar = testArray[i];
}
}
i定义为Number ,运行时间是: 53.34 毫秒

for(var i:int=0; i<testArray.length; i++)

i定义为int,效率提高了,35.58 毫秒

var l:int = testArray.length;

for(var i:int=0; i<l; i++)

时间: 21.6毫秒!
类中的常量
var tmpVar:int;

for(var i:Number=0; i<100000; i++)
{
tmpVar = SomeClass.SOME_CONSTANT;
}

需要34.08毫秒,如果把赋值放在循环外了?
var tmpVar:int;
var myConstant:int = SomeClass.SOME_CONSTANT;

for(var i:Number=0; i<100000; i++)
{
tmpVar = myConstant;
}

只需要15.8毫秒
变量
for(var i:int=0; i<100000; i++)
{
var v1:Number=10;
var v2:Number=10;
var v3:Number=10;
var v4:Number=10;
var v5:Number=10;
}
时间 46.52 毫秒
如果把变量定义在一起,就像这样:
for(var i:int=0; i<100000; i++)
{
var v1:Number=10, v2:Number=10, v3:Number=10, v4:Number=10, v5:Number=10;
}
平均时间19.74毫秒
位操作
位运算也可以提高效率,
例如乘除
for(var i:int=0; i<100000; i++)
{
var val1:int = 4 * 2;
var val2:int = 4 * 4;
var val3:int = 4 / 2;
var val4:int = 4 / 4;
}
平均时间: 49.12毫秒,使用位运算符下降到35.56毫秒
for(var i:int=0; i<100000; i++)
{
var val1:int = 4 << 1;
var val2:int = 4 << 2;
var val3:int = 4 >> 1;
var val4:int = 4 >> 2;
}

 
 
高手云集 版权所有 1998-2009