关键词

Javascript 调用 ActionScript 的简单方法

要在 JavaScript 中调用 ActionScript,可以借助 Adobe Flash 中提供的 ExternalInterface 类,该类的作用是为 ActionScript 提供一种在 Flash Player 中嵌入 JavaScript 代码的通信桥梁,使得 JavaScript 可以调用 ActionScript 中的函数或方法。

以下是在 JavaScript 调用 ActionScript 方法的步骤:

步骤一:在 ActionScript 中编写函数

首先,我们需要在 ActionScript 中编写需要被 JavaScript 调用的函数,比如下面的例子中我们定义了一个名为 showMessage 的函数,该函数将在被调用时在控制台输出一条信息:

function showMessage(msg:String):void{
  trace(msg);
}

步骤二:在 ActionScript 中注册函数

接下来,需要使用 ExternalInterface 类的 addCallback 方法将 showMessage 函数注册到 Flash Player 中。

if (ExternalInterface.available) {
  ExternalInterface.addCallback("showMessage", showMessage);
}

注意,这里我们使用了 ExternalInterface.available 来判断当前环境是否支持 ExternalInterface 类,如果不支持,就没有必要注册函数了。

步骤三:在 JavaScript 中调用函数

一旦函数被注册到 Flash Player 中,我们就可以在 JavaScript 中使用 swfobject.getObjectById() 方法获取 Flash 对象,然后调用注册的函数。下面是一个简单的例子:

var swfObj = swfobject.getObjectById("flash-object");
swfObj.showMessage("Hello, ActionScript!");

在上面的例子中,我们使用 swfobject.js 获取 Flash 对象,然后调用 showMessage 函数,并传入一个字符串参数。

以下是完整的示例代码:

HTML 代码

<!DOCTYPE html>
<html>
<head>
  <title>Javascript 调用 ActionScript 的简单方法</title>
  <meta charset="utf-8" />
</head>
<body>
  <div id="flash-container">
    <h2>Flash content will go here</h2>
    <div id="flash-object"></div>
  </div>
  <script type="text/javascript" src="swfobject.js"></script>
  <script type="text/javascript">
    function init(){
      var flashvars = {};
      var params = {};
      var attributes = {};
      swfobject.embedSWF("flash-file.swf", "flash-object", "640", "480", "10.0.0", "expressInstall.swf", flashvars, params, attributes);

      var swfObj = swfobject.getObjectById("flash-object");
      swfObj.showMessage("Hello, ActionScript!");
    }
  </script>
</body>
</html>

ActionScript 代码

function showMessage(msg:String):void{
  trace(msg);
}

if (ExternalInterface.available) {
  ExternalInterface.addCallback("showMessage", showMessage);
}

注意,这里的 HTML 代码中引入了 swfobject.js,该文件用于将 Flash 文件嵌入 HTML 页面中,并提供了一些有用的 API 方法。

在实际使用中,我们应当结合具体的业务场景,灵活运用 ExternalInterface 类的功能,以实现 JavaScript 和 ActionScript 的互通。

本文链接:http://task.lmcjl.com/news/10001.html

展开阅读全文