Flex与JavaScript交互

 http://www.cnblogs.com/zhaozhan/archive/2010/09/03/1816631.html

ExternalInterface 实现 JavaScript 与 ActionScript 之间的所有通信,ExternalInterface 类是外部 API,这是一个在 ActionScript 和 Flash Player 容器之间实现直接通信的应用程序编程接口。在 Flash Player 中,可以使用 HTML 页中的 JavaScript 来调用 ActionScript 函数。ActionScript 函数可以返回一个值,JavaScript 会立即接收它作为该调用的返回值。

     利用ActionScript,使用call方法,可以在HTMl页上执行以下操作:

  • 调用任何 JavaScript 函数。
  • 传递任意数量、具有任意名称的参数。
  • 传递各种数据类型(Boolean、Number、String 等等)。
  • 接收来自 JavaScript 函数的返回值。

    通过在 HTML 页上使用 JavaScript,使用addCallback方法,可以:

  • 调用 ActionScript 函数。
  • 使用标准的函数调用表示法传递参数。
  • 将值返回给 JavaScript 函数。

注意在将 SWF 文件嵌入到 HTML 页中时,请确保 objectembed 标签的 idname 属性不包含以下字符: . - + * / \

 

1: <script language="JavaScript" type="text/javascript">
 2:  function callFlexFunction() {   
 3:      var x = document.getElementById("JavaScriptTest").flexTest("string from js.");   
 4:      alert(x);   
 5:  }
 6:   
 7:  function jsTest(param) {   
 8:      alert(param);   
 9:      return "Return from js:" + param;   
10:  }  
11:  </script>
 
1: <?xml version="1.0" encoding="utf-8"?>
 2:  <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="intiApp()"
 3:       width="400" height="200">
 4:      <mx:Script>
 5:          <![CDATA[
 6:              import mx.controls.Alert;
 7:   
 8:              public function flexTest(param:String):String
 9:              {
10:                  Alert.show("Input param:"+param);
11:                  return "Return from Flex:"+param;
12:              }
13:   
14:              public function intiApp():void
15:              {
16:                  ExternalInterface.addCallback("flexTest", flexTest);  
17:              }
18:   
19:              public function callJS():void {   
20:                  var s:String = ExternalInterface.call("jsTest", "Flex");   
21:                  Alert.show(s);   
22:              }   
23:          ]]>
24:      </mx:Script>
25:      
26:      <mx:Button x="52" y="58" label="call javascript" click="callJS()"/>
27:  </mx:Application>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值