将 ActionScript 方法注册为可从容器调用。成功调用 addCallBack() 后,容器中的 JavaScript 或 ActiveX 代码可以调用在 Flash Player 中注册的函数。
注意:对于在浏览器中运行的本地内容,仅当 SWF 文件以及包含它的网页位于受信任的本地安全沙箱中时,对 ExternalInterface.addCallback() 方法的调用才有效。有关详细信息,请参阅 Flash Player 开发人员中心主题:安全性。
参数
functionName:String — 容器可用于调用函数的名称。
closure:Function — 要调用的 closure 函数。这可能是一个独立的函数,或者可能是引用对象实例方法的 closure 方法。通过传递 closure 方法,可以将回调定向到特定对象实例的方法。
注意:对闭包值为 null 的现有回调函数重复 addCallback() 将删除回调。
引发 Error — 此容器不支持传入调用。仅在适用于 Windows 的 Internet Explorer 和使用 NPRuntime API 的浏览器(如 Mozilla 1.7.5 及更高版本或 Firefox 1.0 及更高版本)中支持传入调用。
SecurityError — 您无权访问的沙箱中的 ActionScript 已经添加了具有指定名称的回调;您不能覆盖该回调。要解决此问题,请改写原来调用 addCallback() 方法的 ActionScript,以使其还调用 Security.allowDomain() 方法。
SecurityError — 包含环境属于调用代码无权访问的安全沙箱。要解决此问题,请按照下列步骤操作:
1.在包含 SWF 文件的 HTML 页中,在该文件的 object 标签中设置以下参数:
<param name="allowScriptAccess" value="always" />
2.在 SWF 文件中,添加以下 ActionScript:
flash.system.Security.allowDomain(sourceDomain)
ExternalInterface.addCallback(functionName:String, closure:Function):void
最新推荐文章于 2025-06-03 09:21:50 发布