Вы можете сделать это, если событие от вспышки «пузыри». При отправке события из флэш-памяти, сделайте следующее:
dispatchEvent(new Event("myEventName", true)); // that 'true' for bubbles, in the constructor
Тогда вы должны быть в состоянии захватить его в Flex не проблема, с:
addEventListener("myEventName", handler);
... до тех пор, пока addEventListener
вызывается компонент на или выше SWFLoader.
Если вы не можете изменить Flash SWF, или это полный черный ящик, то вы можете просто зарегистрировать MouseEvent.CLICK
обработчик с useCapture = true
, и проверьте, чтобы увидеть, если это правая кнопка:
swfLoader.addEventListener(MouseEvent.CLICK, swfLoader_clickHandler, true, 0, true);
protected function swfLoader_clickHandler(event:MouseEvent):void
{
if (event.target.name == "some_way_to_identify_the_button")
// do X
}
Надежда что помогает, Lance
@viatroops: эй, это не сработало. У меня есть доступ к fla. Fla выполняет эту строку кода 'dispatchEvent (новое событие (« myEvent »), true));' и у меня есть обработчик события swfloader_completeHandler на SWFLoader в Flex. В этом методе у меня есть 'swfloader.addEventListener (" myEvent ", nextStepFunction);'. Но теперь, когда я нажимаю кнопку выхода в swf-файле (когда она встроена в приложение flex), ничего не происходит. Я сделал что-то не так? – Aishwar
попробуйте, так dispatchEvent выглядит так: 'dispatchEvent (новое событие (« myEvent », true)); вместо этого' dispatchEvent (новое событие («myEvent»), true)) 'и пытаюсь установить useCapture на listener к true, например: addEventListener («myEventName», обработчик, true, 0, true); '. Дай мне знать, если это работает. –
@viatroops. Ой, это была опечатка. Да, это то, что я имел для отправки. Я попробовал второй addEventListener, и это тоже не сработало. – Aishwar