自由飛翔

          我在仰望,java之上

          統計

          留言簿(2)

          我關注的blog

          閱讀排行榜

          評論排行榜

          轉載:在JavaScript中調用Flex方法

          文章來源:http://www.cnblogs.com/liuzhong/archive/2011/06/27/2091294.html
          一、在JavaScript中調用Flex方法
          在Flex中可以用ExternalInterface來調用Flex的方法,途徑是
          1.通過在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>

          2.那么在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>

          Gavin

          posted on 2011-12-29 00:51 GavinMiao 閱讀(382) 評論(0)  編輯  收藏 所屬分類: flex


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


          網站導航:
           
          主站蜘蛛池模板: 化隆| 通许县| 孙吴县| 太仆寺旗| 乾安县| 桃园县| 卓资县| 宣威市| 巩留县| 桦甸市| 介休市| 黎城县| 保亭| 曲水县| 兴山县| 新丰县| 焦作市| 务川| 肇庆市| 阿拉善盟| 东乡族自治县| 长兴县| 息烽县| 辽宁省| 南汇区| 新津县| 天镇县| 奉新县| 遂宁市| 应用必备| 林州市| 道孚县| 乌恰县| 石家庄市| 浏阳市| 永平县| 开阳县| 和硕县| 南投市| 神木县| 独山县|