• 从 ActionScript 中调用外部代码


     

    从 ActionScript 中调用外部代码

    http://help.adobe.com/zh_CN/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7ca8.html

    ExternalInterface.call() 方法执行容器应用程序中的代码。它至少需要一个参数,即包含容器应用程序中要调用函数的名称的字符串。传递给ExternalInterface.call() 方法的其它任何参数均作为函数调用的参数传递给容器。

    // calls the external function "addNumbers" 
    // passing two parameters, and assigning that function's result 
    // to the variable "result" 
    var param1:uint = 3; 
    var param2:uint = 7; 
    var result:uint = ExternalInterface.call("addNumbers", param1, param2);

    如果容器为 HTML 页,此方法将调用具有指定名称的 JavaScript 函数,必须在包含 HTML 页中的 script 元素中定义该函数。JavaScript 函数的返回值被传递回 ActionScript。

    <script language="JavaScript"> 
        // adds two numbers, and sends the result back to ActionScript 
        function addNumbers(num1, num2) 
        { 
            return (num1 + num2); 
        } 
    </script>

    如果容器为其它的 ActiveX 容器,此方法将导致 Flash Player ActiveX 控件调度它的 FlashCall 事件。Flash Player 将指定的函数名及所有参数序列化为一个 XML 字符串。容器可以在事件对象的request 属性中访问该信息,并用它来确定如何执行它自己的代码。为了将值返回 ActionScript,容器代码会调用 ActiveX 对象的SetReturnValue() 方法,并将结果(序列化为一个 XML 字符串)作为该方法的参数进行传递。有关用于此通信的 XML 格式的详细信息,请参阅外部 API 的 XML 格式

    无论容器为 Web 浏览器还是为其它 ActiveX 容器,只要调用失败或容器方法没有指定返回值,都将返回 null。如果包含环境属于调用代码无权访问的安全沙箱,ExternalInterface.call() 方法将引发 SecurityError 异常。可以通过在包含环境中为allowScriptAccess 设置合适的值来解决此问题。例如,要在 HTML 页中更改 allowScriptAccess 的值,请编辑 objectembed 标签中的相应属性。

  • 相关阅读:
    あ 段
    需要注意学习.net过程的要点
    最近因为textview高度问题疯了疯了疯了
    判断是否可以使用麦克风
    tabbar加小红点
    textView富文本点击事件
    通过某一个符号截取字符串
    局部富文本
    判断是否包含某个字符串
    UIProgressView 圆角
  • 原文地址:https://www.cnblogs.com/xiayong123/p/3717402.html
Copyright © 2020-2023  润新知