1

私はフレックスアプリケーションを持っていて、を使用してそれにフラッシュ(SWF)ファイルを埋め込みました<mx:SWFLoader>。Flashファイルには「終了」ボタンがあります。フレックスアプリケーションでボタンクリックイベントを処理できるようにしたい。

そのため、フラッシュファイルのそのボタンをクリックしたときに、親フレックスアプリケーションでアクションを実行したいと思います。これどうやってするの?ありがとう!

4

2 に答える 2

0

フラッシュ「バブル」からのイベントの場合、これを行うことができます。Flashからイベントをディスパッチするときは、次のようにします。

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
}

お役に立てば幸い、ランス

于 2010-03-21T01:57:02.937 に答える
0

AS3 のローダー クラスを使用して実行できます (フレックス スクリプト内)。あなたも動的にそれを行うことができます。MXMLで

<mx:SWFLoader id="myLoader" width="500" source="swf/kabin42.swf"
                          complete="initSwf();"/>


private function initNestedAppProps2():void {
    var loadedMc:MovieClip = MovieClip(myLoader.content);
    loadedMc= MovieClip(myLoader2.content);
    //access the button with instance name myButton:
    loadedMc.myButton.addEventListener(MouseEvent.CLICK, onBtnClick);   
}

private function onBtnClick(event:MouseEvent):void{
    Alert.show("button clicked 2");
}

myButton がクリックされると、onBtnClick イベント ハンドラー メソッドが呼び出されます。これで問題が解決することを願っています。

于 2011-04-01T13:00:12.807 に答える