·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3与js通信源代码

时间:2014-10-28 08:55未知
AS与JS通信,官方帮助文档已经说的比较明白了。做什么事,都要得准备好。想要JS调用AS里边的函数,AS这边必须满足两个条件。第一,swf必须已经加载完毕了。第二,AS这边必须注册为可被容器调用。

AS与JS通信,官方帮助文档已经说的比较明白了。做什么事,都要得准备好。想要JS调用AS里边的函数,AS这边必须满足两个条件。第一,swf必须已经加载完毕了。第二,AS这边必须注册为可被容器调用。

  1. if(ExternalInterface.available) 
  2.     ExternalInterface.addCallback("receiveMes",asReceiveMes); 
  3.     ExternalInterface.addCallback("backMes",jsBackMes); 

  if 语句,判断此播放器是否位于提供外部接口的容器中。 如果外部接口可用,则此属性为 true;否则,为 false。addCallback方法就是注册该swf可被容器调用。它有两个参数,都是函数名。前边一个函数名,用引号引起来,表示JS那边对应AS这边的

函数名。后边一个函数名,是AS这边响应的函数名。这两个函数名,可以相同,也可以不同。看个人理解需要。

  AS这边主动调用JS里边的函数,用call方法。call方法第一个参数为JS那边的函数名,是必须要的。你也可以选择传一个或多个参数过去。String,Number,int,Array,Boolean,Object等数据类型都可以互相传递。

  1. ExternalInterface.call("sendMes",_inputTxt.text); 

  主要是js那边的设置。其实就是包含js的Html代码。这里主要有两个标签要用到。一个是object,一个是embed。在object标 签里边有两个属性需要注意。allowScriptAccess属性默认是sameDomain。还有一个参数never和另一个参数aways。设置成 never

AS与JS之间就拒绝通信。设置成aways,不同域也可以访问。object里边还有一个属性是id。这个id与embed标签里边的name属 性对应。在embed标签里边也有allowScriptAccess属性。其实,object标签和embed标签里边的属性很多都相同。想让swf背 景透明就

将embed里边的wmode属性设置成"transparent"。

  下边说下js代码。在js里边获取到swf的引用有两个方法。一个是用:

  1. function getSwf(movieName) 
  2.         { 
  3.             if (navigator.appName.indexOf("Microsoft") != -1)  
  4.                   {  
  5.                     return window[movieName];  
  6.                  }  
  7.                   else  
  8.                  {  
  9.                     return document[movieName];  
  10.                 }  
  11.         } 
  12.  
  13.        getSwf("myFlash") 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器