Flex与JavaScript交互

来源:互联网 发布:阿里妈妈双项淘宝客 编辑:程序博客网 时间:2024/04/28 12:35

Flex 与 JavaScript 交互,主要依靠Flex的ExternalInterface,其提供了addCallBack和call方法.

下面的例子将演示Flex调用javascript,和javascript调用Flex。

js 代码
  1. function hello(param) {   
  2.     alert(param);   
  3.     return "jsp Hello:" + param;   
  4. }   
  5.   
  6. function callFlexFunction() {   
  7.     var x = document.getElementById("flexObject").flexHelloWorld("Hello""world");   
  8.     alert(x);   
  9. }  

html代码

 

    1.<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553537800" 

    2.     width="640" height="378" id="flexObject">
    3.      <param name="allowScriptAccess" value="always" /> 
    4.      <embed src="Test.swf" width="640" height="378"

    5.          name ="flexObject"  play="true"  loop="false"
    6.          allowScriptAccess="sameDomain" 

    7.          type="application/x-shockwave-flash"
    8.          pluginspage="http://www.adobe.com/go/getflashplayer">
    9.      </embed>
   10.</object>

 

Flex 代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"  
  3.     initialize="initApp()">  
  4.        
  5.     <mx:Script>  
  6.         <![CDATA   
  7.             import mx.controls.Alert;   
  8.            
  9.             public function flexHelloWorld(param1:String, param2:String):String {   
  10.                 Alert.show("param1: " + param1 + "; param2:" + param2);   
  11.                 return "Hello " + param1 + param2;   
  12.             }   
  13.                
  14.             public function initApp():void {   
  15.                 ExternalInterface.addCallback("flexHelloWorld", flexHelloWorld);   
  16.             }   
  17.                
  18.             public function jspHello():void {   
  19.                 var s:String = ExternalInterface.call("hello", "Flex");   
  20.                 Alert.show(s);   
  21.             }   
  22.                
  23.         ]]>  
  24.     </mx:Script>  
  25.        
  26.     <mx:Button x="52" y="58" label="call javascript" click="jspHello()"/>  
  27.        
  28. </mx:Application>