gpt4 book ai didi

actionscript-3 - 提供的 DisplayObject 必须是调用者的子对象

转载 作者:行者123 更新时间:2023-12-04 04:29:19 24 4
gpt4 key购买 nike

我是新手,我已经搜索并尝试了数周,但我无法掌握它。下面的简单代码给出了“提供的 DisplayObject 必须是调用者的子项”错误。

var square = new squareObj;
addChild(square);
addEventListener(Event.ENTER_FRAME, removeSquare);

function removeSquare(evt:Event):void {
removeChild(square)
}

squareObj 是库中为 AS 导出的动画片段。如何更改此代码以使其正常工作?我想这是我缺乏正确的 oop 知识,所以任何关于这个问题的好教程的链接都值得赞赏。

问候H

最佳答案

问题是enter frame listener会被一遍又一遍的调用。第一次调用 DisplayObject 时确实是调用者的子对象,但之后就不会了(因为它已被删除)。

所以我建议你这样做:

var square = new squareObj;
addChild(square);
addEventListener(Event.ENTER_FRAME, removeSquare);

function removeSquare(evt:Event):void {
if (contains(square)) {
removeChild(square)
}
}

要么检查正方形是否确实是 this 的 child

var square = new squareObj;
addChild(square);
addEventListener(Event.ENTER_FRAME, removeSquare);

function removeSquare(evt:Event):void {
removeEventListener(Event.ENTER_FRAME, removeSquare)
removeChild(square)
}

或删除事件监听器,具体取决于除删除正方形之外您是否需要该事件。您还应该注意,您可能根本看不到正方形,因为它在添加后很快就会被删除。

关于actionscript-3 - 提供的 DisplayObject 必须是调用者的子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2806549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com