Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Послать "поддельное" MOUSE_WHEEL событие и что бы приложение на него отреагировало (http://www.flasher.ru/forum/showthread.php?t=105920)

makanmel 26.12.2007 22:21

Послать "поддельное" MOUSE_WHEEL событие и что бы приложение на него отреагировало
 
Нужно послать "поддельное" MOUSE_WHEEL событие и что бы приложение на него отреагировало как обычно, то-есть елемент, над которым сейчас мышка, получил его. При этом не добавляя листенеры в каждый контрол, так как их много.

Это требуется для приложения у которого установлен параметр wmode="opaque" (который, видимо, отключает обработку колеса мышки во Flex). Этот параметр не подлежит изменению. Поэтому я MOUSE_WHEEL ловлю в Javascript и посылаю во Flex параметр delta через ExternalInterface.

Есть ли возможность это сделать?

NePridymal 27.12.2007 19:01

Код:

  import flash.events.MouseEvent;
  ....

  var event:MouseEvent = new MouseEvent(MouseEvent.MOUSE_WHEEL);
  dispatchEvent(event);

В конструкторе одним из параметров можно передать параметр delta
Класс посылающего объекта должен быть наследован от EventDispacher (или от его потомков)

А добавлять листенеры все равно прийдется, если их в конролах нет. А то откуда контрол "узнает" как ему на событие реагировать? И реагировать ли вообще?

makanmel 27.12.2007 19:30

Цитата:

Сообщение от NePridymal
А добавлять листенеры все равно прийдется, если их в конролах нет. А то откуда контрол "узнает" как ему на событие реагировать? И реагировать ли вообще?

А как же контролы реагируют на мышку по-умолчанию? То-есть когда я не добавляю листенеры и не посылаю сообщения?

etc 27.12.2007 20:11

Я бы отправлял всплывающее событие через stage.

makanmel 27.12.2007 22:01

Цитата:

Сообщение от __etc
Я бы отправлял всплывающее событие через stage.

А что это такое? Если можно поподробнее или ссылку.

etc 28.12.2007 03:25

Поподробнее про что? Про stage? Про события? Про bubbling? Про то, что stage является EventDispatcher?
Всю эту информацию вы можете получить в встроенном хелпе, без моей помощи.


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

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