当前位置: 首页 > 图文教程 > Flash动画 > ActionScript > AS教程:ActionScript优化

ActionScript
Flash AS实例:制作切换菜单动画
Flash AS3实例教程:简单的转动的星星
Flash AS3实例教程:制作旋转的菜单动画
项目中使用发布swc时遇到两个问题
Flash AS3教程:随图片大小而动态改变的图框
Flash AS3教程:创建好看的遮罩动画效果
Flash AS3.0教程:制作老鹰飞动实例
Flash as入门(6):文本与字符串
Flash as入门(8):加载和卸载swf文件
Flash as入门(17):Math类三角函数
Flash AS3实例教程:连锁反应的粒子动画
AS3实例教程:结合基本的动画和AS3绘图API
学习AS3知识:常用的8个AS3小技巧
Flash AS3实例教程:漂亮的水纹动画
Flash AS3实现动画中音乐音量逐渐关闭
AS 3.0的TransitionManager类制作动画
AS3实例教程:制作数码下落的动画特效
AS3面试题:复杂算法的改进
AS3.0实例:鼠标感应发光的文字效果
Flex4教程:添加事件的3种方法

AS教程:ActionScript优化


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 49 ::
收藏到网摘: n/a

对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;
}