在级别 1 类(父类)中,我将公民生成为单独的对象 (c),以便从左侧或右侧穿过舞台。所有这些都被添加到一个名为 citizens 的数组中:
if (citizens.length < 10)
{
// create citizen
var c:Citizen = new Citizen(side,speed,yPos);
addChildAt(c, 2);
citizens.push(c);
}
我想删除类的每个实例,并删除类中附加到它的事件监听器:
this.addEventListener(Event.ENTER_FRAME,moveCitizen);
我会使用一个 for each then 从数组中拼接吗? E.G
for each (c in citizens) {
removeEventListener(Event.ENTER_FRAME,moveCitizen);
splice();
}
最佳答案
您可以执行类似以下操作:
// Creation
if (citizens.length < 10) {
// create citizen
var c:Citizen = new Citizen( side, speed, yPos );
addChildAt( c, 2 );
citizens.push( c );
}
// Removal
for( var i:int = 0; i < citizens.length; i++ ) {
var c:Citizen = citizens[ i ].pop();
removeChild( c )
c.cleanUp();
}
// In Class Citizen
public function cleanUp():void {
removeEventListener( Event.ENTER_FRAME, moveCitizen );
}
关于actionscript-3 - AS3 从父类的类中删除数组中的所有子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14069001/