我正在为动作脚本 2 flash 应用程序构建一个 flex 4 容器。我使用<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!");
}
}
我可以以某种方式在 flex 4 容器能够捕获的动作脚本 2 flash 应用程序中调度一个事件吗?
谢谢!