Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.02.2014, 19:30
vlbuto вне форума Посмотреть профиль Отправить личное сообщение для vlbuto Найти все сообщения от vlbuto
  № 1  
Ответить с цитированием
vlbuto

Регистрация: Apr 2013
Сообщений: 89
Post Регистрация нажатия клавиш в 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("нажата кнопка влево");
}
}
Но ничего не происходит. Однако, если я использую такую ще подпись на событие после инициализации, всё работает прекрасно

Старый 08.02.2014, 20:09
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 2  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
А зачем в enter_frame добавлять слушатель?

Старый 08.02.2014, 20:14
vlbuto вне форума Посмотреть профиль Отправить личное сообщение для vlbuto Найти все сообщения от vlbuto
  № 3  
Ответить с цитированием
vlbuto

Регистрация: Apr 2013
Сообщений: 89
Цитата:
Сообщение от alexandrratush Посмотреть сообщение
А зачем в enter_frame добавлять слушатель?
Что бы когда начинался экшн Можно было манипулировать объектом, кроме этого, на манипулируемый объект, будут двигаться другие объекты по определенному алгоритму.

Старый 08.02.2014, 20:30
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 4  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
В том, что вы в 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){  действие  };
}

Старый 08.02.2014, 21:08
vlbuto вне форума Посмотреть профиль Отправить личное сообщение для vlbuto Найти все сообщения от vlbuto
  № 5  
Ответить с цитированием
vlbuto

Регистрация: Apr 2013
Сообщений: 89
Спасибо. Не знал про left, right

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:08.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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