ActionScript 3:将同一对象的多个实例添加到舞台并分别移除每个实例

ActionScript 3: Adding multiple instances of the same object to the stage and removing each separately

我有一段代码可以将同一 MovieClip 的三个实例添加到舞台上。我还添加了 MouseEvent.CLICK 监听器。单击任何 MovieClip 后,我希望将其从舞台上删除。我的问题是,无论何时单击任何元素,只有最后一个元素被删除,当我再次单击另一个实例时,我得到:

ArgumentError:错误 #2025:提供的 DisplayObject 必须是调用者的子对象。

我将这三个 MovieClip 添加到一个数组中,但我不知道如何正确识别哪个实例被点击并仅删除所述实例。

这是我的代码摘录:

var myMC: SomeMC;
var myArray: Array = [];


function Loaded(e: Event): void {
 
 for (var i: int = 0; i < 3; i++) {
  
 myMC = new SomeMC();

 myMC.addEventListener(MouseEvent.CLICK, Clicked);
 
 myMC.y = 50;
 myMC.x = 50 * i;
 
 addChild(myMC);
 
 myArray.push(myMC);

 }  
}

function  imageClicked(e: MouseEvent){
 
  // Only the last instance gets removed.
  
 e.currentTarget.parent.removeChild(myMC);
  
  }

如有任何帮助,我将不胜感激。

Loaded 函数中创建对象的 3 个实例,但是通过执行:

myMC = new SomeMC();

您覆盖了引用。在第一次迭代中 myMC 是第一个,在第二个中是第二个,等等...

然后在 imageClicked 中,您正试图将其删除。第一次它可以工作是因为它引用了最后一个对象,但是在您将它从舞台上移除后它就不再工作了。

e.currentTarget.parent.removeChild(myMC); 更改为 e.currentTarget.parent.removeChild(e.currentTarget); 怎么样?那应该删除点击的那个。