2

我有一个加载外部 swf 并且当前链接到同一个 swf 中的按钮的 actionscript 函数...

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 将是最有可能的方式,但我对这一切都是难以置信的新手,所以我不确定从哪里开始或如何去做。

任何帮助,将不胜感激。

4

1 回答 1

9

您正在寻找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 中通过鼠标单击调用。

于 2010-04-05T12:51:23.150 回答