这可以通过几种不同的方式完成。
我的建议是,你有一个类为你的男人。在这个类中你有一个启动removeTimer的函数,并且在创建该人时应该触发它。当2秒钟结束时,我们删除事件侦听器并将其从父母中移除。
,它是将男人的计时器,应该是要实例你的人在任何类。
下面是一个例子
public function initMyTimer()
{
var timer:Timer = new Timer(2000);
timer.addEventListener(TimerEvent.TIMER, voegtoe);
timer.start();
}
public function voegtoe(e:TimerEvent):void
{
trace ('set me up');
var man:Man = new Man;
man.x=Math.random()*650;
man.y=Math.floor(Math.random()*(70))+350;
addChild(man);
man.setMyRemoveTimer();
}
现在你的男人类应该有它的这些功能处理移除。请注意,我们正在上面的代码中调用setMyRemoveTimer。你可以在构造函数中调用该函数,但我想在这里显示链接,所以我把它放在上面的代码中。 Man功能将存在于这里:
public function setMyRemoveTimer():void
{
var removeTimer:Timer = new Timer(2000,1);
removeTimer.addEventListener(TimerEvent.TIMER_COMPLETE, removeMe);
removeTimer.start();
}
public function removeMe(e:TimerEvent):void
{
var removeTimer:Timer = e.target as Timer;
removeTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, removeMe);
this.parent.removeChild(this);
}
这只是一个建议,很多方法可以做到这一点。如果你创造了很多男人,我认为这些男人拥有这样一个阵列的想法是一个很好的建议。
但是,这里的概念是,如果计时器是Man类的成员,则eventHandler将有权从父代中删除监听器以及该监听器。
我不认为这是一个理想的实现,但我试图匹配你目前的设计尽我所能 - 我不想进入阵列来教这个概念。
但我该如何删除我的计时器?我想我会为每个人需要一个不同的计时器......? – 2011-05-19 13:36:02
你究竟想达到什么目的?如果定时器在循环中,您应该为定时器创建一个数组,并通过执行timer [i] .removeEventListener(TimerEvent.TIMER,voegtoe)来停止定时器; – nelsond8 2011-05-19 13:57:58