要在 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