FLEX和JAVASCRIPT的方法互調

--FELX TRANSFER METHOD OF JAVASCRIPT
 1,頁面中包含swf文件
 2,FLEX中使用ExternalInterface.call("myFun","參數1","參數2");
 


--JAVASCRIPT TRANSFER METHOD OF FLEX
 FLEX FILE
  1,ExternalInterface.addCallback("myFlexFunction",myFun); myFun爲FLEX中的函數名,這是一個key-value結構
 JAVASCRIPT FILE
  1,頁面中包含swf文件,OBJECT中指定swf文件的id
  2,使用OBJECT中指定的ID.key來調用FLEX中的方法,FLEX專屬的一些特性不能被使用,例如Alert.show();

EXAMPLE
--FLEX
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
      xmlns:s="library://ns.adobe.com/flex/spark"
      xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
      creationComplete="initApp();"
      >
 <fx:Declarations>
  <!-- 將非可視元素(例如服務、值對象)放在此處 -->
 </fx:Declarations>
 <fx:Script>
  <![CDATA[
   import mx.controls.Alert;
   private function myFun():int{
    Alert.show("20 from flex","MEssage");
    return 20;
   }
   private function initApp():void{
    ExternalInterface.call("myFun",1,2); //傳入參數
    ExternalInterface.addCallback("myFlexFunction",myFun);
   }
  ]]>
 </fx:Script>
</s:Application>

--HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
 <SCRIPT LANGUAGE="JAVASCRIPT">
  function callMyFun(){
   //調用FLEX FUNCTION
   var num = FLEX_DATA_1.myFlexFunction();//FLEX_DATA_1爲頁面說包含的swf文件的id
   alert(num);
  }
  function myFun(content1,content2){
   alert(content1+content2);
  }
 </SCRIPT>
 
 </head>

 <body>
 <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%" id="FLEX_DATA_1">
  <param name="movie" value="FLEX_DATA_1.swf"/> //網絡上的資源路徑
  <param name="scale" value="noborder"/> //規模,沒有邊框
  <param name="WMODE" value="Transparent"/> //模式,透明
  <param name=bgcolor value=#FFFFFF/> //背景顏色
  <param name="quality" value="high" />  //質量,high高
  <param name="menu" value="false" />  //菜單,無
  <param name="allowScriptAccess" value="sameDomain" />  //允許script接入,同樣的範圍
      
  <embed src="FLEX_DATA_1.swf"
   quality="hight" align="middle" width="100%" height="450"
   scale=noborder bgcolor=#000000 name="TH2"
   type="application/x-shockwave-flash"  //資源類型
   allowScriptAccess="sameDomain"
   pluginspage="http://www.macromedia.com/go/getflashplayer"/> //插件頁面
 </object>
 <BUTTON ONCLICK="callMyFun();">CLICK ME</BUTTON>
 </body>
</html>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章