从html链接调用AS3函数 - Javascript?PHP的?swfaddress?

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

任何帮助,将不胜感激.

Cam*_*ron 9

你正在寻找这个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中调用.