September 12, 2008

一只n00b的两个月ActionScript开发经验 (2)

续上文
  • 矢量还是Bitmap
    • Flash处理矢量自然比较方便,可以比较容易的做关键帧动画效果...不过在有多层遮罩计算的情况下,复杂矢量图形的遮罩会大大拖慢Render的速度。在Flash IDE的stage上的object可以勾上cacheAsBitmap的勾,这样只要那个object不做scale/rotate,Flash Player就会先生成一个bitmap的cache来提高效率...在我碰到的一个例子里,300个物体大概可以提高50%的帧数。不过对于动态加到Scene上的Library Class,就要手动设这个flag,用法是 DisplayObject.cacheAsBitMap = true; 
      而在不需要关键帧动画的情况下...不带alpha的bitmap+mask可能是最快的...不过后来偷懒,一直没有把png的alpha层改成mask...
    •  动画
      • 尽量少用关键帧动画...因为用Flash IDE做的动画修改起来往往比较麻烦...特别是如果要重用到另外的Symbol上的话...解决方法是把动画导出成XML,用Copy Motion as ActionScript 3.0... 而对于简单的不需人工干预的移动旋转Fade in/Out特效,用enterFrame来写费时费力...其实可以用fl.transitions.Tween类一次性解决,其实就是对于MovieClip的某一个属性做渐变...轻松易用...
      • FPS
        • Fps一定要在项目开始就定下来...否则日后要调整所有Timeline相关动画的帧率...非常麻烦...如果交互性很强,例如RTS/Action Game的话,20是比较合适的...如果是Puzzle或者Adventure Game的话,甚至12也足够了...只要帧率稳定,玩家完全没有感觉...
        • TimeLine Code
        • 尽量不要用Timeline代码...因为Debug起来非常麻烦...我唯一用到的可能就是一些stop();啊之类的命令...不过其实也是多余的...因为如果call的时候就是gotoAndStop();的话根本就没有问题
        待续...

        No comments: