removeChildAt非常耗性能

今天偶然发现removeChildAt非常消耗性能,当我连续点击stage以生成sprite实例时,fps直接降到5以下,

使用removeChildren来删除时,fps几乎保持不变!

当然,我这种测试可能会有片面性,大家若有其他类似测试结果,请告诉我!

下面是代码,大家可以测试一下!

package {

import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;

import langyan.CustomClass.StatsFps;

[SWF(frameRate="24")]
public class TestFPs extends Sprite {

    private var _box:Sprite;

    public function TestFPs() {
        this.addEventListener(Event.ADDED_TO_STAGE, addStageHandler)
    }

    private function addStageHandler(event:Event):void {
        _box = new Sprite();
        this.addChild(new StatsFps());
        this.addChild(_box);
        _box.x = 200;
        stage.addEventListener(MouseEvent.CLICK, addBoxHandler)
    }

    private var _count:int=0;
    private function addBoxHandler(event:MouseEvent):void {
        _count++;
        trace("add",_count);
        var newBox:Sprite;
        var len:int = _box.numChildren;

        var curBox:DisplayObject;
        if (len > 1) {
            for (var i:int = 0; i < len; i++) {
               /* curBox=_box.getChildAt(0);*/
                _box.removeChildAt(0);
                /*  curBox = null;*/
            }
           /* _box.removeChildren(0,len-1);*/
        }

        for (var i:int = 0; i < 10000; i++) {
            newBox = new Sprite();
            _box.addChild(newBox);
        }
    }
}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值