编写高效率的AS3代码的小技巧

所属分类: 网页制作 / Flash 阅读数: 388
收藏 0 赞 0 分享
下面是我的一些测试结果

Array & Object constructing

构造数组和对象的时候,new Array() and new Object()要比 [] and {}慢3倍的时间

Index Number type for Arrays

数组的数字索引类型

ist[int(0)] 比list[0]要快

Create Array vs. Updating Array

再循环语句中避免多次创建数组,最好创建一次用多次更新内容替换
Nulling Array vs. Splicing Array

对于庞大的数组而言就行splice操作是比较耗成本的,要尽量避免

When working with large Arrays splicing is obviously an expensive operation, you can avoid this by nulling the index and skipping it in a null scenario. If you need to splice in order to keep the Array length low. Then store these nulled indexes in another trash Array once the garbage count has reached a limit you've defined loop through the numerically sorted trash indexes deleting splices in bulk. This concept is demonstrated in Tweensy.

 

Nulling Object vs. Delete Object

delete一个对象的属性要比把该属性设置为null 更昂贵,所以对于对象的属性最好设置为null

Nesting Loops(嵌套循环)

多次嵌套循环效率差,所以最好保证循环在2层以内

 

Inline code vs. function references

如果在时间帧上的函数很长而且执行时间长,最好,把该函数分成多个小的函数执行。

 

这样可以缩短执行时间提高效率

Arguments vs. variable referencing

尽量最小化函数的参数个数

 

 

Function apply scoping do it or not?

Scoping function.apply is a little bit slower than not so if you don't have to then don't.

 

 

Array push vs. Array index

用设置index的方式来代替使用数组函数push

比如

list[list.length] = data; 要比直接用push快600%;

 

Array emptying - length 0 vs. A new Array

如果你需要设置一个空数组,有一个方便的办法去选择,就是通过设置它的length属性为0

或者你会认为这么做是不错的选择,原因是它能节省内存,但是事实上这样做的执行速度不如直接new array的效率高

当然,如果你需要在一次循环中清除多于510个数组为空时,用length设置为0的时候会更好

 

Var declarations on multiple lines vs. Var declarations on a single line

 

将变量声明在一行中,要比声明多行更好,效率更高

i.e.
var a:int=0, b:int=0, c:int=0;
vs.
var a:int=0;
var b:int=0;
var c:int=0;

 

Using Xor to swap variables

如果你想去交换变量,但是又不想创建新的变量的时候,可以用xor

如:

 a = a^b;
b = a^b;
a = a^b;

 

Multiplication vs. Division

乘法的运算速率总是比出发快,比如5000/1000 要比 5000*0.001快130%;

 

 

Type casting comparison 强制转换类型对比

When type casting the keyword as is 250% more efficient than casting by Type(item); Though surprisingly not using either is about 1400% more efficient.

 

建议使用对应的类型的变量进行比较

同类型的比较效率高的多

 

 

Long vs Short variable names

尽量用短的变量名

更多精彩内容其他人还在看

Flex程序开发心得小结

和Flash的开发环境相比,Flex提供的组件库确实很诱人,但由于功能太全面,导致程序的体积大,有时候使用不当,可能会影响程序运行效率。
收藏 0 赞 0 分享

关于FLASH与XML交互应用中的理解

关于XML在FLASH中的应用,以前写过几篇。也收集了几篇来自网络的。不过,都是一些非常简单而常用的。在这里,我把XML的其他相关说明总结一下。有不足之处,希望大家能相互补充。只为了一个共同的目的:共同提高。
收藏 0 赞 0 分享

Flash Event写法

flash下event事件驱动方法
收藏 0 赞 0 分享

AS3自写类整理笔记 ClassLoader类第1/2页

在用flash做项目的时候,把一些元件,通过设置链接类,然后使用这个类,通过getClass方法即可把这个素材拿下来
收藏 0 赞 0 分享

AS3自写类整理笔记:ByteLoader类

该类的主要功能是把swf,jpg,png,gif等文件以字节的形式加载进来 以便于使用Loader.loadBytes方法,重复加载使用素材 如果图片格式为jpg,并且是渐进式格式jpeg,那么该类还可以帮助你边加载边显示
收藏 0 赞 0 分享

AS3自写类整理笔记 Dot类第1/2页

拖拽物体1和物体2,就可以看到效果了 index.base.geom.Dot类讲解 基本功能:记录xy两点
收藏 0 赞 0 分享

AS3 中的package(包)应用实例代码

初学者在学习AS3时会遇到什么样的问题呢?只有从初学的角度来实践,才能知道,package 这个高手们必玩的内容,对初学者来说或许就有一些困惑。
收藏 0 赞 0 分享

swfupload使用代码说明

终于在天哪joyous的帮助下,花了一天的时间,搞明白大部分内容. swfupload(以下简称su)遇到的主要问题就是,版本不同造成的极大差异, 现在的版本已经到2.1beta。我用的是2.02版,天哪用的是1.xx版。
收藏 0 赞 0 分享

Flex中最好的MVC框架Mate框架

个人感觉Mate框架非常适合开发一般运用程序,可以提高开发效率,节约成本,同时也比较好维护。但如果要做游戏或是其它控制更强的程序并不适合。
收藏 0 赞 0 分享

Flex 创建复数行文本内容的List

效果不错的flex多行文本
收藏 0 赞 0 分享
查看更多