JavaScript (js) 和Flex交互总结(IE&&非IE浏览器)
JavaScript (js) 和Flex交互总结(IE&&非IE浏览器)
soul_mate 发表于3年前
JavaScript (js) 和Flex交互总结(IE&&非IE浏览器)
  • 发表于 3年前
  • 阅读 543
  • 收藏 2
  • 点赞 1
  • 评论 1

首先,不管是Flex调用js,还是js调用 Flex

需要引入的包(Flex包)import flash.external.*; 

其次,简单说说相互之间如何调用

1、Flex程序调用js的方法 :

这个相对简单,如下

Flex中:

public function FlexCallJs(){
    ExternalInterface.call("FlexJS");      // flex 直接调js里的方法             
}

Js中:

function FlexJS(){
    alert("flex call js");
}

2、Js调用Flex中的方法 :

这个相对而言注意的多些,如下

Flex中:

public function callFlexback(){
    //该函数必须是先启动,即该函数的作用是监听来自js中的调用 可以放在Application 中的creationComplete
    //<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="callFlexback()" >
    ExternalInterface.addCallback("jsCallFlex",jsCallFlex);  
    //js调flex入口,addCallback()函数前边是js调用该flex的入口,而后边的参数才是调用flex程序中真正的函数<习惯将两个代码写成一样>
 }
 //真正的供js调用的Flex里的函数
 public function jsCallFlex():void{
     Alert.show("@!@");
 }

 JsP中:

<div class="map1" style="display:block"> 
    <object id="object" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="990" height="222">
    <param name="movie" value="common/FlexJsTest.swf" /><!-- 似乎这个用不到啊 -->
    <param name="quality" value="high" />
    <param name="wmode" value="transparent" />
    <embed id="embedid" src="common/FlexJsTest.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="990" height="600" wmode="transparent"></embed>
     </object>
</div>
//通过opject对象引入flex编译的哦swf文件 src是相关的路径  其中最主要的东西是embedid,需要同过这个id为IE或者非IE浏览器获取该flex中的方法

Js中:

function jscallflex(){
     var x;
     if(navigator.appName.indexOf("Microsoft") != -1){//针对IE浏览器
        x=document.getElementById('embedid').jsCallFlex();
     }
     else {//针对非IE浏览器
        x=document.embeds['embedid'].jsCallFlex();
     }
}


共有 人打赏支持
粉丝 4
博文 37
码字总数 17367
评论 (1)
首席救火队员
赞一个,终于解决了兼容性问题
×
soul_mate
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: