ActionScript3中removeChildAt()的使用注意事项

在AS3中我们删除一个容器的子项通常使用 removeChildAt(i:int)这个方法,当我们想要完成清空容器的功能时,通常我们都会使用循环实现。务必要注意的是:如果我们删除一个子项,Container 中该子项之上的任何显示对象的索引位置都减去 1,也就是说AS3中会自动调整所有的子对象的深度,不能跨深度。

下面我会提供几种解决方案:

1.实现正序删除:

 var numChild:int = this.panel.numChildren;
    while(this.panel.numChildren>=1){
     this.panel.removeChildAt(0)

    }

2.实现逆序删除:

var numChild:int =this.panel.numChildren;
     for(var i:int=numChild-1;i>=0;i--){
      this.panel.removeChildAt(i);
     }

3.实现逐个删除的动画效果:

this.panel.addEventListener(Event.ENTER_FRAME,clear_graphics);

    private function clear_graphics(evt:Event):void { 
      if (this.panel.numChildren==0) {
       this.panel.removeEventListener(Event.ENTER_FRAME,clear_graphics);
       }
       else{
       this.panel.removeChildAt(0);
       }
     }

var a:Number=1;//0.0 这是一个数字雨的元件,我反正就用了3个,不知道在密集会不会更好 addEventListener(Event.ENTER_FRAME ,xx);//每当进入下一帧就会触发事件 function xx(event:Event):void { var my1:rain=new rain ;//数字雨最外面的一层~嘿嘿写的是 I love you 想想,但是不容易看清楚=-= my1.x=Math.random()*550;//数字雨函数随机出现在X轴550范围呢 my1.scaleX=0.005+Math.random();//调节了N次,感觉还是0.005倍数字大小+随机宽度随机值最真实 my1.scaleY=0.005+Math.random();//额,这个是纵向大小随机 addChild(my1);//让数字雨显示出来 a++;//数字雨数量递增命令 if (a>140) {//如果数据流数量超过140 this.removeChildAt(5);//自动删除5条数据流 a=140;//控制显示数量在140,否则会乱套的 } } var b:Number=1;//然后这里是第二层了 addEventListener(Event.ENTER_FRAME ,yy); function yy(event:Event):void { var my:rain2=new rain2 ; my.x=Math.random()*550; my.scaleX=0.02;//这层大小没有随机值的 my.scaleY=0.02;//无论横纵都被控制在了0.02倍 addChild(my); b++; if (b>100) { this.removeChildAt(1); b=100; } } var w:Number=1;//第三层也是最小的一层 addEventListener(Event.ENTER_FRAME ,qq); function qq(event:Event):void { var my:rain3=new rain3 ; my.x=Math.random()*650; my.scaleX=0.01; my.scaleY=0.01; addChild(my); w++; if (w>100) { this.removeChildAt(1); w=100; } }这一层主要出现在影片的最里面~~所以大小被控制在了最小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值