Во-первых, вы должны слушать KeyboardEvent
с вместо MouseEvent
. Тогда я думаю, что вы должны слушать те события, которые отправляются stage
.
Вот пример использования события Event.ENTER_FRAME
. Если вы хотите лучше контролировать скорость выполнения спрайтов, вы можете захотеть вместо этого использовать таймер.
Этот пример работает, когда нажата стрелка вниз, но вы можете изменить Keyboard.DOWN
с любой клавишей, которую хотите.
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
function onKeyDown(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.DOWN)
{
stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
}
function onKeyUp(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.DOWN)
{
stage.removeEventListener(Event.ENTER_FRAME, onEnterFrame);
}
}
function onEnterFrame(event:Event):void
{
bottomArrow.y += 1;
}
В вашем 'arrowDown' запустите таймер или используйте прослушиватель ENTER_FRAME, чтобы внести изменения в' .y'. В обработчике MOUSE_UP остановите таймер или ENTER_FRAME. – sberry
Спасибо за помощь. Оно работает. – user2128095
http://stackoverflow.com/questions/12394877/as3-run-code-continuously-while-holding-a-button-down-air-for-ios-android/12395009#12395009 – BadFeelingAboutThis