我想在按下按钮时创建它创建一个孩子,然后当孩子被击中时删除孩子....这可以工作但是当我再次点击按钮时,孩子不再被创建
我该怎么做?这是我的代码:
var bikeride:MovieClip = new ridingbike();
ridinb.addEventListener(MouseEvent.CLICK, openbike);
function openbike(evt:MouseEvent):void {
addChild(bikeride);
}
bikeride.addEventListener(MouseEvent.CLICK, closebike);
function closebike(evt:MouseEvent):void {
bikeride.removeChildAt(0);
}
答案 0 :(得分:2)
您可以使用以下内容删除孩子:
removeChild(bikeride);;
如果您不存储bikeride
实例,则可以执行此操作:
function closebike(evt:MouseEvent):void {
var bike:DisplayObject = DisplayObject(evt.target);
bike.parent.removeChild(bike);
}
答案 1 :(得分:1)
添加到Florent的答案中,您可能还想删除事件侦听器,并在尝试使用它之前检查bikeride
是否有父级。这可以避免空对象引用错误并确保bikeride
被垃圾收集(从内存中删除,释放资源)。
bikeride.addEventListener(MouseEvent.CLICK, closebike);
function closebike(evt:MouseEvent):void
{
if(bikeride.parent)
{
bikeride.parent.removeChild(bikeride);
}
bikeride.removeEventListener(MouseEvent.CLICK, closebike);
}
如果您期望对象被正确“删除”,那么删除事件侦听器非常重要。