AS3如何清空所有代码生成的元件而不会清除原来场景固有的元件?

例如场景原本就有一个元件,然后通过代码addChild生成若干个元件,那如何在保留原场景元件的情况下把所有生成的元件删除。PS,生成的元件不一定是同一个元件。... 例如场景原本就有一个元件,然后通过代码addChild生成若干个元件,那如何在保留原场景元件的情况下把所有生成的元件删除。
PS,生成的元件不一定是同一个元件。
展开
 我来答 举报
百度网友98ba30d
推荐于2016-11-11 · TA获得超过1616个赞
知道大有可为答主
回答量:2623
采纳率:50%
帮助的人:2838万
展开全部
关键的一点是在addChild之前要先获取舞台上原有的DisplayObject 数量。
例如:在舞台上添加2个Button组件,分别命名为:add_btn、clean_btn,库里面有个名称为mc3的影片剪辑类,那么可以写代码如下:
import flash.display.MovieClip;
import flash.events.MouseEvent;
var oriNum:int = this.numChildren;
add_btn.label = "添加对象";
clean_btn.label = "清除对象";
add_btn.addEventListener(MouseEvent.CLICK, addObj);
clean_btn.addEventListener(MouseEvent.CLICK, cleanObj);
function addObj(evt:MouseEvent):void{
var newObj:MovieClip = new mc3();
newObj.x = Math.random()*stage.width;
newObj.y = Math.random()*stage.height;
addChild(newObj);
}
function cleanObj(evt:MouseEvent):void{
while (this.numChildren>oriNum){
removeChildAt(oriNum);
}
}

需要源文件的话,可以做一个给你,留给邮箱地址。
lsjaker4
2013-04-27 · TA获得超过289个赞
知道小有建树答主
回答量:557
采纳率:0%
帮助的人:603万
展开全部
你中以试试下面的代码,希望能给你解决问题第一个for循环,是添加10个AS链接为car库元件然后放进数组C,第二个for循环是删除在数组C里的所有显示列表
var C:Array=new Array();
var Car:car;
for (var i:uint=0; i<10; i++) {
Car=new car();
Car.x = i * 45 + 50;
Car.y = 100;
addChild(Car);
C.push(Car);
}
trace(C);

for (var j:int=0; j<C.length; j++) {

removeChild(C[j])}
trace(C);
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论(1) 举报 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式