您可以使用 字典 。使用计时器作为键,使用movielcip作为值。
import flash.utils.Dictionary; var dict:Dictionary = new Dictionary(); function clickHandler (event:MouseEvent):void{ event.currentTarget.hp--; if(event.currentTarget.hp <= 0) { for(var i:int = 0;i<25;i++) { if(event.currentTarget == _drone[i]) { dict[countdown[i]] = _drone[i];//set the target mc here countdown[i].start(); //start timer break; } } } } function timerHandler(e:TimerEvent):void { var mc:MovieClip = dict[e.target] as MovieClip;//get the object been clicked if (mc && mc.parent) { mc.parent.removeChild(mc);//remove it } }
只需极少的更改,设置一个数组来跟踪无人机:
var arrayToRemove:Array = new Array();
然后在点击处理程序中存储要在那里删除的无人机:
arrayToRemove.push(event.currentTarget);
并在timerHandler中删除数组的第一个元素:
removeChild(arrayToRemove.shift());
由于每个延迟都相同,因此将保留事件和删除的顺序。虽然,使用上面的示例概括代码并将所有无人机和定时器存储在数组中可能会更好,因此您可以拥有任意数量的代码。