JunXiu

          flex和javascript互相調用

          一、在JavaScript中調用Flex方法
          在Flex中可以用ExternalInterface來調用Flex的方法,途徑是通過在Flex應用可調用方法列表中添加指定的公用方法。在Flex應用中通過調用addCallback()可以把一個方法添加到此列表中。addCallback將一個ActionScript的方法注冊為一個JavaScript和VBScript可以調用的方法。
          addCallback()函數的定義如下:
          addCallback(function_name:String, closure:Function):void
          function_name參數就是在Html頁面中腳本調用的方法名。closure參數是要調用的本地方法,這個參數可以是一個方法也可以是對象實例。

          舉個例子:
          <mx:Script>
              import flash.external.*;
              public function myFunc():Number {
                  return 42;
              }
              public function initApp():void {
                  ExternalInterface.addCallback("myFlexFunction",myFunc);
              }
          </mx:Script>
          那么在Html頁面中,先獲得SWF對象的引用,也就是用<object .../>聲明的Swf的Id屬性,比如說是MyFlexApp。然后就可以用以下方式調用Flex中的方法。
          <SCRIPT language='JavaScript' charset='utf-8'>
              function callApp() {
                  var x = MyFlexApp.myFlexFunction();
                  alert(x);
              }
          </SCRIPT>
          <button onclick="callApp()">Call App</button>



          二、在Flex中調用 JavaScript
          你可以調用Html頁面中的JavaScript,通過與JavaScript的交互,可以改變Style,調用遠程方法。還可以將數據傳遞給Html頁面,處理后再返回給Flex,完成這樣的功能主要有兩種方法:ExternalInterface()和navigateToUrl()。
          在Flex中調用JavaScript最簡單的方法是使用ExternalInterface(),可以使用此API調用任意JavaScript,傳遞參數,獲得返回值,如果調用失敗,Flex拋出一個異常。
          ExternalInterface封裝了對瀏覽器支持的檢查,可以用available屬性來查看。
          ExternalInterface的使用非常簡單,語法如下:
          flash.external.ExternalInterface.call(function_name: String[, arg1, ...]):Object;
          參數function_name是要調用的JavaScript的函數名,后面的參數是JavaScript需要的參數。
          舉個例子說明如何調用JavaScript函數
          Flex應用中,添加如下方法:
          <mx:Script>
          <?xml version="1.0" encoding="iso-8859-1"?>
          <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
              <mx:Script>
                  import flash.external.*;
              
                  public function callWrapper():void {
                      var f:String = "changeDocumentTitle";
                      var m:String = ExternalInterface.call(f,"New Title");
                      trace(m);
                  }
              </mx:Script>
              <mx:Button label="Change Document Title" click="callWrapper()"/>
          </mx:Application>
          Html頁面中有如下函數定義:
          <SCRIPT LANGUAGE="JavaScript">
              function changeDocumentTitle(a) {
                  window.document.title=a;
                  return "successful";
              }
          </SCRIPT>

          轉載地址:http://unixboy.javaeye.com/blog/506843

          posted on 2010-08-15 22:24 junlin 閱讀(992) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          統計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 巴塘县| 罗定市| 无棣县| 翼城县| 仁怀市| 北流市| 黄山市| 聂荣县| 健康| 桦川县| 漳平市| 沅江市| 龙里县| 青河县| 寻甸| 云龙县| 易门县| 滨州市| 岑溪市| 桐乡市| 库伦旗| 城固县| 孝感市| 平阳县| 五台县| 嘉禾县| 双城市| 宁远县| 河西区| 望城县| 石屏县| 阿巴嘎旗| 潼南县| 灌南县| 万源市| 黔南| 长岛县| 济源市| 广东省| 綦江县| 灌阳县|