2016-10-13 00:16:48 点击量:7 标签: 收藏本文
AS与JS通信,官方帮助文档已经说的比较明白了。做什么事,都要得准备好。想要JS调用AS里边的函数,AS这边必须满足两个条件。第一,swf必须已经加载完毕了。第二,AS这边必须注册为可被容器调用。
- if(ExternalInterface.available)
- {
- ExternalInterface.addCallback("receiveMes",asReceiveMes);
- ExternalInterface.addCallback("backMes",jsBackMes);
- }
if 语句,判断此播放器是否位于提供外部接口的容器中。 如果外部接口可用,则此属性为 true;否则,为 false。addCallback方法就是注册该swf可被容器调用。它有两个参数,都是函数名。前边一个函数名,用引号引起来,表示JS那边对应AS这边的
函数名。后边一个函数名,是AS这边响应的函数名。这两个函数名,可以相同,也可以不同。看个人理解需要。
AS这边主动调用JS里边的函数,用call方法。call方法第一个参数为JS那边的函数名,是必须要的。你也可以选择传一个或多个参数过去。String,Number,int,Array,Boolean,Object等数据类型都可以互相传递。
- 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的引用有两个方法。一个是用:
- function getSwf(movieName)
- {
- if (navigator.appName.indexOf("Microsoft") != -1)
- {
- return window[movieName];
- }
- else
- {
- return document[movieName];
- }
- }
- getSwf("myFlash")
我们是一家提供综合软件外包与弱电工程服务的技术公司。
业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。
公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室