flash与js的通信

搬运自http://blog.163.com/lijianwei_123/blog/static/18489289120103203514673/

最近在做项目的过程中需要flash与js之间的互相调用,查找资料flash与js的通信有三中方法。 
1.getURL("javascript:jsFunctionName()"); 
getURL是flash的一个全局函数,作用是向浏览器发送一个请求。熟悉js的人一定知道,向浏览器 
发送javascript:开头的请求,其实就是模拟了一个js的请求协议,浏览器会去在当前环境中找指 
定的function。 
这种方法在flash早期版本比较流行。 
2.fscommand("command","arguments"); 
fscommand的方法是flash中与播放器通讯的方法,通常向播放器,发送命令。 
例如:fscommand("fullscreen",“true“);使播放器全屏显示。 
由于在web页面中flash播放器也根js在同一环境下,所以可以通过播放器与js通讯。 
“flashId”是播放器对象在web页面中的id名字,这里假设就是flashId。 
当在as中调用fscommand命令时,播放器会在web环境中找名为: 
flashId_DoFSCommand("command",arguments)的方法,参数与as中fscommand的参数相同。 
这里可以根据command的不同调用不同的方法,在js里 
如: 
if(command=="alert"){ 
  alert(arguments); 

3.flash8后提供了一个扩展类,可以执行对js和js对as的调用。 

ExternalInterface.call("functionName",parameters); 
functionName:js中的函数名称。 
parameters:传过去的参数,用逗号隔开 
简单的一句就可以实现对js方法的调用 

同时这个类也可以实现js对as方法的调用,:) 
ExternalInterface.addCallback('标识名',parent,Function); 
这个方法就是把as中的一个function注册为一个“标识名”,让js可以通过这个标识调用 
标识名:js中可以调用的名称 
parent:方法运行环境也就是function中的this是谁。有一点像js中的call(parent,)或者apply(parent) 
的感觉 
funtion :as 中的一个方法名称,注意是Function对象,不是string型

原文地址:https://www.cnblogs.com/dygfc/p/3675378.html