【问题标题】:Security Error when trying to call ActionScript function from JS尝试从 JS 调用 ActionScript 函数时出现安全错误
【发布时间】:2011-01-19 10:10:16
【问题描述】:

我有一个小测试 swf 来测试从 JavaScript 调用 ActionScript(3.0) 函数。我使用 Flash 文档作为参考: (http://www.adobe.ca/livedocs/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000340.html) 当页面加载时,我看到一个 Flash Player 错误:

SecurityError: Error #2060: Security sandbox violation: ExternalInterface caller file: c:/externalinterface.swf cannot access file: c:\myhtml.html
at flash.external::ExternalInterface$/_initJS()
    at flash.external::ExternalInterface$/addCallback()
    at externalinterface_fla::MainTimeline/frame1()

这是动作脚本:

 import flash.external.ExternalInterface

function callMe(name:String):String{

    return "busy signal";

    }

    ExternalInterface.addCallback("myFunction",callMe);

还有 JS:

<script type="text/javascript" language="javascript">
    function callSwf() {
        var callResult = flashObject.myFunction("Nick");
        alert(callResult);
    }   

</script>

最后是 HTML 对象:

<object width="550" height="400">
<param name="movie" value="externalinterface.swf">
<embed src="externalinterface.swf" width="550" height="400">
</embed>
</object>

我们如何解决这个问题?

【问题讨论】:

  • 在您的 html 中是否允许执行脚本? params.allowscriptaccess = "总是"

标签: flash actionscript-3 externalinterface


【解决方案1】:

如果你在线测试或本地主机测试,如果你有参数 allowscriptaccess="true" 就像 dome 说的那样,它应该可以工作。 如果您使用 file:// 协议进行测试,您需要在 flash 播放器安全选项中允许您的驱动器。

【讨论】:

猜你喜欢
  • 2011-07-02
  • 1970-01-01
  • 2022-11-30
  • 1970-01-01
  • 2013-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多