wde*_*e51 2 javascript php swfobject actionscript-3 swfaddress
我有一个动作脚本功能,加载一个外部swf,并且当前链接到同一个swf中的一个按钮...
function btnClick(event:MouseEvent):void{
SoundMixer.stopAll();
removeChild(loader);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onSWFLoaded);
loader.load(movieSWF)
loader.x=Xpos
loader.y=Ypos
addChild(loader)
}
button.addEventListener(MouseEvent.CLICK,btnClick);
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法从swf所在页面上的链接调用此功能.我猜javascript,php或swfaddress将是最可能的方式,但我对这一切都难以置信的新,所以我不知道从哪里开始或如何去做.
任何帮助,将不胜感激.
你正在寻找这个ExternalInterface.addCallback功能.这使您可以注册一个函数,以便可以从JavaScript代码外部调用它.
您的HTML可能如下所示('IDofSWF'页面上包含SWF的元素的ID):
<a href="#" onclick="document.getElementById('IDofSWF').clicky()">
Click to call btnClick in the SWF
</a>
Run Code Online (Sandbox Code Playgroud)
在Flash中的初始化代码中有以下内容:
import flash.external.ExternalInterface;
// ...
// This will allow JavaScript to call a function on the SWF named 'clicky'. It will execute the anonymous function passed as the second argument:
ExternalInterface.addCallback('clicky', function () {
btnClick(null);
});
Run Code Online (Sandbox Code Playgroud)
请注意,您将不会获得MouseEvent(我的示例null作为其值传递),因为事件处理程序是在鼠标单击时手动调用(从JavaScript外部)而不是在SWF中调用.