AS3效率优化总结不断更新

效率就在咱们身边,提高是如此简单!数组

    • 优化显示:透明效果,滤镜,缩放以及旋转能够产生分红绚丽的效果,可是这些效果同时也吃掉了不少的CPU,因此在游戏中尽量用位图代替这些效果。
    • 流畅的逻辑运算:另一个瓶颈是游戏中的逻辑判断。尽可能减小没必要要的判断,取消程序中的那些临界近似值的判断。出来显示问题,优化逻辑判断是提升游戏性能最为显著的一个。
    • 使用Vector类存储一组相同类型的数据:Flash player10引入了Vector类。除了要求存储数据必须是同一种类型外,它的功能和Array类彻底一致。可是若是当须要存储不一样类型的数据时,Array的运行效率还要比Vector胜出一筹的。
    • 用uint代替Math.floor:要对一个小数进行四舍五入,你第一时间可能会想到Math.floor方法,好比Math.floor(9.3213);而将这个数字强制转换为uint类型,能够获得相同个结果:uint(9.3213);更重要的是Flash Player处理uint的速度要比Math.floor快的多。位运算>>0最快
    • eg:
      trace(64.55>>0); //64
      trace(-64.55>>0); //-64
      trace(8>>0); //8
      trace(-8>>0); //-8
    • 乘法运算要比除法快两倍:x=(stage.stageWidth/2);与x=(stage.stageWidth*0.5);的结果是同样的,可是乘法的运算效率要比除法快两倍。
    • 尽可能使用查找表:查找表实际是就是一个普通的Array,不过它的数组元素在游戏初始时已经计算好并存储进去了。很显然Flash Player在运行过程当中去读取一个值要比计算出这个值要快的多。
    • 避免频繁的建立和删除对象动做:对于要从舞台中删除的对象,若是稍后还会再用到这个对象的话,使用visibility=false将其“删除”,而不是使用removeChild把它从显示列表中删除。由于Flash Player中重建对象要比隐藏对象复杂的多。
    • 使用对象池:在游戏初始化时,把全部须要的对象存放到一个数组中。当须要删除和重建对象是,只须要声明一个对象引用数组中的这个对象便可。这比从新new一个对象出来要快多了。
    • 位运算有时候会更快:位运算的计算方法和CPU的处理数据本质上是一致的,跟CPU讲它的“母语”,它“理解”起来,作起来天然就更快了!
相关文章
相关标签/搜索