我有一个加载外部 swf 的 actionscript 函数,并且当前链接到同一个 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);
我想知道是否有办法从 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>
在 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);
});
请注意,您不会获得 MouseEvent(我的示例传递 null
作为它的值),因为事件处理程序是手动调用的(从 JavaScript 外部调用)而不是从 SWF 内部调用鼠标点击。
关于php - 从 html 链接调用 AS3 函数 - Javascript? PHP? swf地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2577007/