2013-03-20 2 views
0

Кто-нибудь знает, как переместить видеоклип, нажав кнопку на сцене. Я могу заставить его двигаться с шагом, но я хочу, чтобы он постоянно двигался. В настоящее время у меня есть это:перемещение видеоклипа нажатием кнопки AS3

down.addEventListener(MouseEvent.MOUSE_DOWN, arrowDown); 

function arrowDown(event:MouseEvent):void 
{ 
bottomArrow.y += 1; 
} 
+0

В вашем 'arrowDown' запустите таймер или используйте прослушиватель ENTER_FRAME, чтобы внести изменения в' .y'. В обработчике MOUSE_UP остановите таймер или ENTER_FRAME. – sberry

+0

Спасибо за помощь. Оно работает. – user2128095

+0

http://stackoverflow.com/questions/12394877/as3-run-code-continuously-while-holding-a-button-down-air-for-ios-android/12395009#12395009 – BadFeelingAboutThis

ответ

1

Во-первых, вы должны слушать 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; 
} 
Смежные вопросы