|
|
|||||
Регистрация: Nov 2007
Сообщений: 1,723
|
не работает KEY_DOWN
В общем проблема такая: нужно, чтобы при нажатии стрелочек на клаве, клип двигался.
Но почему-то не получается. Вот класс самого клипа: package { import flash.display.* import flash.events.* import flash.ui.Keyboard public class Hero extends MovieClip { public function Hero(xPositionn:Number, yPositionn:Number):void { this.x = xPositionn; this.y = yPositionn; this.addEventListener(KeyboardEvent.KEY_DOWN, control) } public function control(e:KeyboardEvent):void { if (e.keyCode == Keyboard.LEFT) { this.x -= 5 } if (e.keyCode == Keyboard.RIGHT) { this.x += 5 } } } } package { import flash.display.* import flash.events.* public class Root extends MovieClip { var hero:Hero = new Hero(275, 300) public function Root():void { addChild(hero) } } } Заранее благодарю Последний раз редактировалось Zik.; 17.06.2009 в 15:26. |
|
|||||
Регистрация: Jan 2009
Сообщений: 1,651
|
согласно коду событие будет происходить, только когда фокус флешки будет у hero. Переделай на stage.addEventListener(KeyboardEvent.KEY_DOWN, control)
|
|
|||||
У меня обычно тоже обработчики клавиатуры гючат, поэтому я их всегда на stage цепляю. Только перед этим нужно убедится, что он есть или написать обработчик для Event.ADDED_TO_STAGE, а в нем уже цеплять обработчик для клавы
|
|
|||||
Регистрация: Nov 2007
Сообщений: 1,723
|
повесил я на stage и выдалась следующая ошибка:
что делать на этот раз? |
|
|||||
Регистрация: Jan 2009
Сообщений: 1,651
|
тебе выше написали.
Нельзя подвесить событие на stage, если сам мувик еще не добавлен на сцену (потому что stage=null). Нужно сначало подвесить событие Event.ADDED_TO_STAGE, а на его обработчике подвесить KEY_DOWN. |
|
|||||
Регистрация: Nov 2007
Сообщений: 1,723
|
спасибо всем большое!
все заработало |
Часовой пояс GMT +4, время: 08:59. |
|
« Предыдущая тема | Следующая тема » |
|
|