全局位图缓存

 

在矢量图相当复杂的环境下,即便我们用鼠标在SWF晃悠几下也会导致CPU飙升。而缓存某个层级都不能解决。只能把所有的元件都开启位图缓存……这样性能会提升50%甚至更多。

AS:

  1. function cacheAllLayerAsBitmap(displayObj:DisplayObjectContainer):void
  2. {
  3.     var len:int = displayObj.numChildren;
  4.     var mc:DisplayObject;
  5.     for (var i:int = 0; i < len ; i++)
  6.     {
  7.         mc = displayObj.getChildAt( i );
  8.         if(mc == null)    continue;
  9.         mc.cacheAsBitmap = true;
  10.         if(mc is DisplayObjectContainer)
  11.         {
  12.             if(DisplayObjectContainer( mc ).numChildren > 0)
  13.             {
  14.                 cacheAllLayerAsBitmap( DisplayObjectContainer( mc ) );
  15.             }
  16.         }
  17.     }
  18. }

用法:
对于单个SWF来说只要在第一帧写上cacheAllLayerAsBitmap(this);
对于大型项目一般都是把SWF加载进来,那么就 cacheAllLayerAsBitmap(DisplayObjectContainer( loader.content )) 完事了
发布的时候切记把调试关掉。且不能在FLASH里直接测试。否则看不到效果。因为FLASH里直接测试影片也会调用DEBUG版本的Flash Player。

测试的时候用release版本的Flash Player进行测试,debug版有些地方没做优化。(重要)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值