我有一個柔性應用程序,並使用<mx:SWFLoader>
在其中嵌入了一個閃存(SWF)文件。 Flash文件上有一個「退出」按鈕。我希望能夠處理Flex應用程序上的按鈕單擊事件。從嵌入式Flash控制器控制柔性應用程序
因此,當單擊Flash文件中的該按鈕時,我想在父Flex應用程序中執行一個操作。我怎樣才能做到這一點?謝謝!
我有一個柔性應用程序,並使用<mx:SWFLoader>
在其中嵌入了一個閃存(SWF)文件。 Flash文件上有一個「退出」按鈕。我希望能夠處理Flex應用程序上的按鈕單擊事件。從嵌入式Flash控制器控制柔性應用程序
因此,當單擊Flash文件中的該按鈕時,我想在父Flex應用程序中執行一個操作。我怎樣才能做到這一點?謝謝!
你可以做到這一點,如果事件從閃光「氣泡」。當你發送從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
}
希望這有助於, 蘭斯
你可以使用AS3中的加載程序類(在Flex腳本中)。即使你可以動態地做到這一點。 在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事件處理方法將被調用.. 我希望,這個解決您的問題..
@viatroops:哎,這沒有奏效。我確實可以訪問fla。 fla執行下面這行代碼:dispatchEvent(new Event(「myEvent」),true));'我在Flex中的SWFLoader上有一個'swfloader_completeHandler'事件處理程序。在這個方法中,我有'swfloader.addEventListener(「myEvent」,nextStepFunction);'。但是現在,當我點擊swf文件中的退出按鈕(當它嵌入到flex應用程序中時),什麼也沒有發生。我做錯什麼了嗎? – Aishwar 2010-03-21 08:31:25
嘗試它,因此dispatchEvent看起來像這樣:'dispatchEvent(new Event(「myEvent」,true));'而不是this'dispatchEvent(new Event(「myEvent」),true))',並嘗試設置useCapture listener爲true,如下所示:'addEventListener(「myEventName」,處理程序,true,0,true);'。讓我知道這是否有效。 – 2010-03-21 09:56:17
@viatroops。糟糕,這是一個錯字。是的,那是我爲dispatchEvent所做的。我嘗試了第二個addEventListener,那也沒有工作。 – Aishwar 2010-03-21 10:23:43