Я создаю контейнер flex 4 для flash-приложений сценария действия 2.Я использую <mx:SWFLoader>
компонент для загрузки игры.
Я знаю, что могу ловить события или даже пользовательские события из приложения сценария действия 3.
рабочий пример для сценария действия 3 (не 2):
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955"
minHeight="600" creationComplete="init()">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import Red5Event;
private function handleRed5Event(e:Red5Event):void {
Alert.show("yay");
}
private function init():void {
this.fileSwf.content.addEventListener(Red5Event.CONTROL_TYPE
,handleRed5Event);
}
]]>
</fx:Script>
<mx:SWFLoader id="fileSwf" source="file.swf" />
</s:Application>
затем в приложении flash я расширяю класс событий, добавляя правильный тип элемента управления и устанавливая bubbles
в true, поэтому всякий раз, когда я отправляю событие, оно, вероятно, перехватывается приложением flex.
Я понял, что с помощью as2 я могу отправлять пользовательские события, используя следующий пример:
import mx.events.EventDispatcher;
class Sender {
// these three lines are needed to use EventDispatcher
public var addEventListener:Function;
public var removeEventListener:Function;
public var dispatchEvent:Function;
public function Sender() {
// this line must be in the constructor of the class
EventDispatcher.initialize(this);
// dispatch an event once per second
}
public function sendEvent():Void {
dispatchEvent({type:"xpoControl"});
trace("event sent!");
}
}
Могу ли я каким-то образом отправить событие во флэш-приложении сценария 2 действия, что контейнер flex 4умеет ловить?
спасибо!