在1级课程(父母)中,我将公民生成为单独的对象(c),以便从左或右走过舞台。所有这些都添加到一个名为“公民”的数组中:

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);


我会为数组中的每个拼接然后使用a吗?例如

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 );
}

10-05 23:37