Передача события «ввод ключа» на флэш-плеер в окне ATL? - PullRequest
0 голосов
/ 09 апреля 2009

У меня есть Flash player (flash9.ocx), встроенный в окно ATL, и я закодировал функциональность в swf для ответа на нажатие клавиши возврата / ввода. Работает нормально с автономного SWF-плеера, но как только он проигрывается из моего встроенного плеера, он не запускается. Как будто мое окно как-то мешает? Есть ли способ передать нажатие клавиши на плеер?

К вашему сведению, в форме нет ничего странного.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 13 июня 2010

Я не часто использую flash, но я программист на C ++. знак равно Посмотрим, смогу ли я вам помочь. Я считаю, что ваше приложение отлавливает все события перед вашим флэш-фильмом. Я не знаю, есть ли лучший способ сделать это, но вы можете прослушать любое событие клавиатуры в вашей форме и использовать SetVariable вашего компонента ActiveX для установки переменной во Flash. Затем в Flash Movie вы можете настроить отслеживание любых изменений в этой переменной и вызвать событие Enter.

Надеюсь, это поможет.

0 голосов
/ 13 апреля 2009

Я не разработчик VC ++, но я часто использую Flash.

Хотя не уверен, похоже, что встроенный плеер не имеет фокуса. Убедитесь, что у вас есть эта часть на стороне Flash:

  • сцена существует (ваш фильм правильно инициализирован)
  • вы устанавливаете слушателя KeyboardEvent на сцену.

Вы можете использовать FocusManager , чтобы убедиться, что у вас есть фокус.

Я не знаю, можете ли вы передать фокус из приложения в SWF OLE через какой-нибудь tabIndex или что-то в этом роде.

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

Раньше это было достигнуто с помощью fscommand , но внешний интерфейс, похоже, является подходящим для использования сейчас.

Удачи!

...