Форум Flasher.ru

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

TommyLee 27.10.2009 20:02

Как среда Flash определяет, какой событийный объект создать?
 
Во внешней среде (ОС) произошло воздействие на swf: мышкой поводили\щелкнули, кнопку на клавиатуре нажали, когда фокус на swf был, загрузка файла началась\закончилась и т.п. Как среда Flash понимает, какой событийный объект в каком случае создать? ОС передает соответствующее API?

Psycho Tiger 27.10.2009 20:05

Так же, как и браузер.
В целом да, как сказал - так и есть.

TommyLee 27.10.2009 20:45

Тогда следующий вопрос. Про свойства Event, для чего они нужны и почему их такая куча. Среда Flash получает событие от ОС со всеми возможными характеристиками события. Эти всевозможные характеристики пишутся как раз в эти свойства Event?

Добавлено через 1 минуту
Цитата:

Сообщение от Psycho Tiger (Сообщение 861271)
Так же, как и браузер.

Есть, где об этом поподробнее почитать?

Felicast 27.10.2009 21:41

не понял, что вы хотите, но если интересуют события виндоус, можете воспользоваться программкой spy++ (поставляется вместе с Visual Studio). там можно посмотреть, что за события посылает windows всем окнам (включая и флеш, и браузер)
Цитата:

Тогда следующий вопрос. Про свойства Event, для чего они нужны и почему их такая куча.
сколько видов событий, столько и Event. мышинные события в MouseEvent, клавиатурные - в KeyboardEvent. помимо них еще куча всяких событий, можете свои написать.
события нужны чтобы уменьшить связность между классами. например виндовсу абсолютно побарабану, что там должно произойти при клике мышкой. он просто формируем событие клика и передает их браузеру, тот флешу. флеш обрабатывает это событие, находит объект под координатами курсора, и заставляет этот объект сгенерировать событие

TommyLee 28.10.2009 11:22

Цитата:

Сообщение от Felicast (Сообщение 861297)
сколько видов событий, столько и Event. мышинные события в MouseEvent, клавиатурные - в KeyboardEvent. помимо них еще куча всяких событий, можете свои написать.

Посмотрел в справочнике. Так и есть: свойства Event - все возможные характеристики события, получаемые от ОС (у наследников, видимо, также, может плюс что-то для внутренних нужд).

Добавлено через 6 минут
Но это все предопределенные события: какие характеристики (и события) разработчики дали программистам, теми они и могут пользоваться. При разработке ПО, взаимодействующего с аппаратурой, есть ограничения? Например, новый тип манипулятора или диагностическое оборудование? Это все можно повесить на стандартные события?

Котяра 28.10.2009 14:43

это должен отрабатывать сам плеер. например не задействована там левая кнопка - события так и не присылаются ( вернее он перехватывает их и показывает меню, вместо того чтоб передавать событие дальше) Тоже самое про остальные события.. типа файл загружен, нажата кнопка сохранить в диалоговом окне сохранения файла.. итп.

SamFR 28.10.2009 15:30

Цитата:

Сообщение от TommyLee (Сообщение 861391)
При разработке ПО, взаимодействующего с аппаратурой, есть ограничения?

Флеш может ловить только те системные события, обработка которых зашита в плеер.
При разработке ПО, взаимодействующего с нестандартной аппаратурой, лучше использовать не флэш, он не для этого. Можете посмотреть в сторону Qt.

TommyLee 28.10.2009 15:57

ok. Всем спасибо за помощь!

Добавлено через 7 минут
Понял. Всем спасибо за помощь!
Еще вопрос по предопределенным событиям. Среда создает только те событийные объекты, которые указаны в import или автоматически все возможные (имею ввиду предопределенные)?

Felicast 28.10.2009 19:08

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

TommyLee 29.10.2009 10:39

Цитата:

Сообщение от Felicast (Сообщение 861604)
флеш получает все события, пришедшие от ОС.

Флеш получает все события, пришедшие от ОС, а дальше должен их куда-то записывать. Я так понял, для этого нужно создать соответствующий событийный объект (MouseEvent и тп). Т.к. во всех примерах (и с игрой, ссылку на которую вы мне писали в другой теме) событийный объект не создается через new, а только импортируется, то вопрос был в следующем: флеш автоматически создает объекты всех событий (клавиатуры, мыши и другие), или только объекты тех событий, которые программист написал через import?

Цитата:

Сообщение от Felicast (Сообщение 861604)
события на то и события, что им абсолютно по барабану, подписаны на них мильен обработчиков или ни одного. они возникают в любом случае

Здесь понятно.


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

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