アクション スクリプト 2 フラッシュ アプリケーション用の 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>
次に、フラッシュ アプリケーションでイベント クラスを拡張し、適切なコントロール タイプと設定bubbles
を true に追加します。そのため、イベントをディスパッチするたびに、おそらくフレックス アプリケーションによってキャッチされます。
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 フラッシュ アプリケーションでイベントを何らかの方法でディスパッチできますか?
ありがとう!