2013-03-12 57 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