我正在为操作脚本2 Flash应用程序构建一个Flex4容器。
我用
<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
如果是这样,那么每当我分派一个事件时,它可能会被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应用程序中的事件?
谢谢!