Har*_*ald 3 object actionscript-3 addchild movieclip removechild
我是一个新手,我已经在这个问题上进行了数周的训练,并且我无法掌握这一点.下面的简单代码给出了"提供的DisplayObject必须是调用者的子代"错误.
var square = new squareObj;
addChild(square);
addEventListener(Event.ENTER_FRAME, removeSquare);
function removeSquare(evt:Event):void {
removeChild(square)
}
Run Code Online (Sandbox Code Playgroud)
squareObj是库中的一个movieclip,它是为AS导出的.如何更改此代码以使其正常工作?我想这是我对正确的oop的了解,我缺乏,所以任何关于这个问题的良好教程的链接都表示赞赏.
问候H.
问题是输入帧侦听器将被反复调用.第一次调用它时,DisplayObject确实是调用者的子代,但之后它不会(因为它已被删除).
所以我建议你这样做:
var square = new squareObj;
addChild(square);
addEventListener(Event.ENTER_FRAME, removeSquare);
function removeSquare(evt:Event):void {
if (contains(square)) {
removeChild(square)
}
}
Run Code Online (Sandbox Code Playgroud)
要么检查广场是否真的是孩子 this
var square = new squareObj;
addChild(square);
addEventListener(Event.ENTER_FRAME, removeSquare);
function removeSquare(evt:Event):void {
removeEventListener(Event.ENTER_FRAME, removeSquare)
removeChild(square)
}
Run Code Online (Sandbox Code Playgroud)
或删除事件监听器,具体取决于您是否需要除了移除方块之外的其他事件.另外你应该注意到你可能根本看不到方形,因为它会在添加后很快被删除.
| 归档时间: |
|
| 查看次数: |
16610 次 |
| 最近记录: |