Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Регистрация нажатия клавиш в enter frame (http://www.flasher.ru/forum/showthread.php?t=206512)

vlbuto 08.02.2014 19:30

Регистрация нажатия клавиш в enter frame
 
Здравствуйте.

Пытаюсь прицепить в функции enter_frame 2 события:

Код AS3:

stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down)
//stage.addEventListener(KeyboardEvent.KEY_UP, key_up)
//----------------------------------------------------------
public function key_down(e:KeyboardEvent):void
{
 if(e.keyCode == 37)
{
trace("нажата кнопка влево");
}
}

Но ничего не происходит. Однако, если я использую такую ще подпись на событие после инициализации, всё работает прекрасно

alexandrratush 08.02.2014 20:09

А зачем в enter_frame добавлять слушатель?

vlbuto 08.02.2014 20:14

Цитата:

Сообщение от alexandrratush (Сообщение 1159238)
А зачем в enter_frame добавлять слушатель?

Что бы когда начинался экшн:) Можно было манипулировать объектом, кроме этого, на манипулируемый объект, будут двигаться другие объекты по определенному алгоритму.

samana 08.02.2014 20:30

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

var right:Boolean=false;
var left:Boolean=false;
 
addEventListener(Event.ENTER_FRAME,enter_frame);
stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down)
stage.addEventListener(KeyboardEvent.KEY_UP, key_up)
 
public function key_down(e:KeyboardEvent):void
{
    if(e.keyCode == 37) left=true;
    if(e.keyCode == 39) right=true;
{
 
public function key_up(e:KeyboardEvent):void
{
    if(e.keyCode == 37) left=false;
    if(e.keyCode == 39) right=false;
{
 
public function enter_frame(e:Event):void
{
  if(left){  действие  };
  if(right){  действие  };
}


vlbuto 08.02.2014 21:08

Спасибо. Не знал про left, right


Часовой пояс GMT +4, время: 14:06.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.