2013-03-12 41 views
0

我只是想控制外部加載的swf的按鈕。AS3 ahow控制外部swf的暫停按鈕

var swfRequest:URLRequest = new URLRequest('http://mysite.com/player/001.swf'); 
var swfLoader:Loader = new Loader(); 
swfLoader.load(swfRequest); 
var holder:MovieClip = new MovieClip(); 
holder.addChild(swfLoader); 
addChild(holder); 

而在主SWF我創建新的按鈕與實例名稱:pauseBtn,我想這個按鈕傳達給外部SWF女巫與實例名稱暫停按鈕:pausebtn在動作腳本2.0


外部BTN:

on (release) 
{ 
    status_playing = false; 
    playbtn._visible = true; 
    pausebtn._visible = false; 
    stop(); 
} 

請幫助我如何與這些按鈕進行通信。

回答

0

通常,我不認爲你可以直接在AS3內容和AS2內容之間進行通信。一種解決方法是使用LocalConnection對象來處理兩者之間的通信。

在創建對象並連接它們之後它將如何工作,主要的swf會向它的LocalConnection對象發送一條消息,並且加載的swf將接收該消息並使用它來處理您需要的任何消息。

的LocalConnection - AS3參考:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/LocalConnection.html

的LocalConnection - AS2參考:http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00001176.html#312868

+0

要添加,有[格蘭特斯金納的SWFBridge(http://gskinner.com/blog/archives/2007/07/swfbridge_easie .html)LocalConnection的包裝 – 2013-03-12 03:36:07

+0

感謝您使用LocalConnection功能。 但我不想修改這個外部加載的AS2 SWF文件。只想控制主要swf文件中的按鈕 – user2105386 2013-03-14 12:40:24

+0

從Loader類文檔中,它明確指出:AS2和AS3不能相互通信,並且使用LocalConnection對象是如何避開它。 所以再次,似乎沒有辦法直接從AS3調用AS2代碼。 您必須使用LocalConnection對象才能這樣做。如果你沒有(或不能)修改AS2 swf,你可以嘗試製作一個加載你的AS2 swf的AS2包裝器,並實現所需的LocalConnection對象作爲兩者之間的橋樑。 – mitim 2013-03-14 23:09:58