Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как сделать данные доступными из любого класса? (http://www.flasher.ru/forum/showthread.php?t=134060)

DenisS1 20.12.2009 13:13

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

MrPoma 20.12.2009 13:23

Показать код.

DenisS1 20.12.2009 13:45

В классе 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]){
      // какой-то код
  }
}
}


lighto 20.12.2009 14:02

оформите сравнение а потом trace функции делайте. до этого редактирование я дурь написал ум за разум зашел) и еще у вас нулл с 1л

DenisS1 20.12.2009 14:11

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

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

Psycho Tiger 20.12.2009 20:31

Кому интересно и кто не понял - он обращался к свойству экземпляра класса, вместо статичного свойства класса.

Obi 20.12.2009 22:00

Ну на вскидку, я бы использовал синглтон, который бы рассылал нужные события по нажатию клавиш. А дальше кто как хочет, тот пусть так и реагирует.


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

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