|
|
|||||
Регистрация: Jul 2011
Сообщений: 3
|
Простое движение с клавиатуры.
Подскажите такую вещь, пытаюсь сделать простое движение объекта с клавиатуры:
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed); var speed:Number = 10; function keyPressed(evt:KeyboardEvent):void { if (evt.keyCode == 39) { this.hero.x += speed; } if (evt.keyCode == 37) { this.hero.x -= speed; } } в AS2 делал аналогичное движение вот так: Все работало замечательно, объект сразу двигался в нужном направлении без остановки. Как победить эту остановку в AS3? |
|
|||||
Регистрация: Jul 2011
Сообщений: 2
|
package { import flash.display.MovieClip; import flash.events.Event; import flash.events.KeyboardEvent; public class Hero extends MovieClip { public var step = 5; // скорость перемещения var leftPressed:Boolean; var rightPressed:Boolean; public function Hero() { if (stage) { ON_INIT(); } else { addEventListener(Event.ADDED_TO_STAGE, ON_INIT); } } public function ON_INIT(event:Event = null) { removeEventListener(Event.ADDED_TO_STAGE, ON_INIT); stage.addEventListener(Event.ENTER_FRAME, ON_ENTER_FRAME); stage.addEventListener(KeyboardEvent.KEY_DOWN, ON_KEY_DOWN); stage.addEventListener(KeyboardEvent.KEY_UP, ON_KEY_UP); } public function ON_ENTER_FRAME(e:Event) { if (leftPressed) { this.x -= step; } else if (rightPressed) { this.x += step; } } public function ON_KEY_DOWN(e:KeyboardEvent) { if (e.keyCode==37) { leftPressed=true; } else if (e.keyCode==39) { rightPressed=true; } } public function ON_KEY_UP(e:KeyboardEvent) { if (e.keyCode==37) { leftPressed=false; } else if (e.keyCode==39) { rightPressed=false; } } } } |
Часовой пояс GMT +4, время: 09:46. |
|
« Предыдущая тема | Следующая тема » |
|
|