Flash与JS通信在技术上主要通过ExternalInterface对象进行实现。ExternalInterface 对象提供将 ActionScript 可接入的容器(例如:HTML)与 SWF 文件互相调用的能力。js调用Flash中的方法和Flash调用js中的方法都是通过这个对象实现的。
1、JS调用Flash:
1.首先,在AS中使用ExternalInterface的addCallback方法注册一个Flash函数。如:
import flash.external.ExternalInterface;
ExternalInterface.addCallback("functionName", callBackFuntion);
function callBackFuntion(value:*) : void {
// 执行操作
}
functionName是js用来调用的函数名称, callBackFuntion是Flash响应函数。
2.然后在JS中即可用如下语句来调用Flash中的函数:
document.getElementById("FLASHID").functionName(value);
2、Flash调用JS:
1.首先在js中定义一个函数。如:
function jsFunction(value) {
alert(value);
}
2.然后,在AS中使用ExternalInterface的call方法调用此JS函数。如:
ExternalInterface.call("jsFunction",value);
注意的是:
- 在HTML中的object或者embed标签中需要添加
allowscriptaccess
属性,并且设置为always
或者sameDomain
才能允许脚本访问。 - Flash与JS通信容易受到不同浏览器嵌入Flash的方式(Object或Embed)影响,在调用时应做好判断处理。
- ExternalInterface不可用于本地计算机上的SWF文件,除非将文件的位置添加到Flash Player 9及更高版本的受信位置。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/174094.html