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

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

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

Регистрация: Oct 2009
Сообщений: 27
По умолчанию Как сделать данные доступными из любого класса?

Есть приложение, в котором очень много классов. Многим из них нужно знать, нажата или нет определённая клавиша на клавиатуре. Для этого я в главном классе слушаю клавиатурные события и записываю состояние клавиш в булевский массив. Однако что делать в других классах - не представляю. Также слушать события? Будет падать производительность. Конструкции типа parent.parent.parent.....value меня тоже не прельщают. Вынес этот массив в отдельный класс MyKeyboard и сделал его там статическим (чтобы все созданные экземпляры были одинаковыми), но Flex ругается - "обращение возможно неопределённого свойства через ссылку со статическим типом MyKeyboard". Что делать?

Старый 20.12.2009, 13:23
MrPoma вне форума Посмотреть профиль Отправить личное сообщение для MrPoma Посетить домашнюю страницу MrPoma Найти все сообщения от MrPoma
  № 2  
Ответить с цитированием
MrPoma
 
Аватар для MrPoma

Регистрация: Jul 2006
Адрес: Питер
Сообщений: 2,083
Отправить сообщение для MrPoma с помощью Skype™
Показать код.
__________________
жж | твттр | гглплс | фсбк | вкнткт | гтхб

Старый 20.12.2009, 13:45
DenisS1 вне форума Посмотреть профиль Отправить личное сообщение для DenisS1 Найти все сообщения от DenisS1
  № 3  
Ответить с цитированием
DenisS1

Регистрация: Oct 2009
Сообщений: 27
В классе MyKeyboard
Код AS3:
public static var pressedKey:Array=[];
В главном классе
Код AS3:
private var keyboard:MyKeyboard=new MyKeyboard;()
private function keyDown(e:KeyboardEvent){
   keyboard.pressedKey[e.keyCode]=true;
}
private function keyUp(e:KeyboardEvent){
   keyboard.pressedKey[e.keyCode]=false;
}
В одном из классов проекта
Код AS3:
private var keyboard:MyKeyboard=new MyKeyboard();
private function dumpSelection(e:MouseEvent=null){
   if(e==null||!keyboard.pressedKey[17]){
       // какой-то код
   }
}
}


Последний раз редактировалось DenisS1; 20.12.2009 в 14:10.
Старый 20.12.2009, 14:02
lighto вне форума Посмотреть профиль Отправить личное сообщение для lighto Найти все сообщения от lighto
  № 4  
Ответить с цитированием
lighto
[+1 17.02.10]
 
Аватар для lighto

Регистрация: Aug 2009
Адрес: Казахстан Усть-Каменогорск
Сообщений: 249
оформите сравнение а потом trace функции делайте. до этого редактирование я дурь написал ум за разум зашел) и еще у вас нулл с 1л
__________________
Flex+AS3 good)


Последний раз редактировалось lighto; 20.12.2009 в 14:06.
Старый 20.12.2009, 14:11
DenisS1 вне форума Посмотреть профиль Отправить личное сообщение для DenisS1 Найти все сообщения от DenisS1
  № 5  
Ответить с цитированием
DenisS1

Регистрация: Oct 2009
Сообщений: 27
nul - это потому что я с ноута перепечатываю (к Сети подключён другой, старый комп)
А как я сделаю trace, если этот код не запускается?

Добавлено через 3 часа 11 минут
Проблема решена. Закройте, плиз.


Последний раз редактировалось DenisS1; 20.12.2009 в 17:24.
Старый 20.12.2009, 20:31
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 6  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Кому интересно и кто не понял - он обращался к свойству экземпляра класса, вместо статичного свойства класса.

Старый 20.12.2009, 22:00
Obi вне форума Посмотреть профиль Отправить личное сообщение для Obi Найти все сообщения от Obi
  № 7  
Ответить с цитированием
Obi
 
Аватар для Obi

Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
Ну на вскидку, я бы использовал синглтон, который бы рассылал нужные события по нажатию клавиш. А дальше кто как хочет, тот пусть так и реагирует.
__________________
#flasher@irc.trg.ru:6667

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

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

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


 


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


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