AS3如何清空所有代码生成的元件而不会清除原来场景固有的元件?
例如场景原本就有一个元件,然后通过代码addChild生成若干个元件,那如何在保留原场景元件的情况下把所有生成的元件删除。PS,生成的元件不一定是同一个元件。...
例如场景原本就有一个元件,然后通过代码addChild生成若干个元件,那如何在保留原场景元件的情况下把所有生成的元件删除。
PS,生成的元件不一定是同一个元件。 展开
PS,生成的元件不一定是同一个元件。 展开
2个回答
展开全部
关键的一点是在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);
}
}
需要源文件的话,可以做一个给你,留给邮箱地址。
例如:在舞台上添加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);
}
}
需要源文件的话,可以做一个给你,留给邮箱地址。
ZESTRON
2024-09-04 广告
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸...
点击进入详情页
本回答由ZESTRON提供
展开全部
你中以试试下面的代码,希望能给你解决问题第一个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);
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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询