我如何在击中一个物体后5秒内禁用角色的控制,然后立即让角色自由移动?到目前为止,我已经能够获得hitTest的代码和删除键盘控件(简单部分),但现在我很难过如何在计时器上设置键盘控件。有帮助吗?我的hitTest和删除控件的代码如下。
if (player.hitTestObject(folder))
{
trace("success!");
addChild(myInfo);
//stops player movement
stage.removeEventListener(KeyboardEvent.KEY_DOWN,kD);
}
else
{
addChild(myInfo);
removeChild(myInfo);
}
代码中的其他问题现在无关紧要(例如else函数中的添加/删除子项。
答案 0 :(得分:3)
private var m_tmr:Timer = new Timer(5000, 1);
private function someFunc():void
{
if (player.hitTestObject(folder))
{
trace("success!");
addChild(myInfo);
//stops player movement
stage.removeEventListener(KeyboardEvent.KEY_DOWN,kD);
m_tmr.addEventListener(TimerEvent.TIMER, onTimer);
m_tmr.start();
}
else
{
addChild(myInfo);
removeChild(myInfo);
}
}
private function onTimer(pEvent:TimerEvent):void
{
m_tmr.removeEventListener(TimerEvent.TIMER, onTimer);
stage.addEventListener(KeyboardEvent.KEY_DOWN, kD);
}
每次添加/删除计时器的事件监听器都是为了提高效率;你不断添加/删除它并不重要。