![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Nov 2010
Сообщений: 111
|
Мне необходимо сделать перемещение объекта. Данный код работает, но есть одна проблема. При нажатии на клавишу LEFT происходит одно перемещение и через некоторое время уже она "зажимается" и объект начинает постоянное движение. Как привязать сюда выполнение сразу в каждом кадре без паузы?
|
|
|||||
|
Регистрация: Apr 2010
Сообщений: 219
|
По факту нажатия либо по таймеру, либо в каждом кадре начинаете перемещать, по факту отжатия - прекращаете.
|
|
|||||
var left:Boolean=false; stage.addEventListener(KeyboardEvent.KEY_DOWN,key_down); stage.addEventListener(KeyboardEvent.KEY_UP,key_up); function key_down(event:KeyboardEvent) { if (event.keyCode==Keyboard.LEFT) :void{ left=true; } } function key_up(event:KeyboardEvent) { if (event.keyCode==Keyboard.LEFT) :void{ left=false; } } addEventListener(Event.ENTER_FRAME,enter_frame); function enter_frame(e:Event):void { if(left){clip.x-=sko;} } |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 111
|
samana спасибо, все работает. Правда удивляет отсутствие в самом языке более простого решения
|
|
|||||
|
Banned
Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
А что в этом решении сложного? Оно и есть простое. Упрощать уже некуда. Мало ли для каких целей нужно использовать слушатели. Не все же упирается в покадровое движение
|
|
|||||
|
Регистрация: Nov 2010
Сообщений: 111
|
Есть одна проблема! В варианте, который я использую(код samana). Необходимо кликнуть мышью на экран иначе не происходит инициализация функций и объект не реагирует на нажатие клавиш. В чем дело?
|
|
|||||
|
Цитата:
Сам точно не понимаю, как stage может находиться вне фокуса, но такое случается. Был бы признателен, если бы кто ни будь объяснил почему так происходит. |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 111
|
Нет не в браузере. Фокус помог, спасибо
|
![]() |
![]() |
Часовой пояс GMT +4, время: 21:21. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|