轉:Flex程序如何獲取html容器傳遞的URL參數值

  們經常在Flex程序需要用從外部html向swf文件傳遞參數,(類似 test.html?name=jex&address=chengdu 地址中問號後面的參數對值)
  首先要明確的是,一般我們在使用Flex Builder進行Flex開發時,編譯後自動以html容器將swf文件包裝起來了,所以一般來說,我們直接運行的是html,而非直接運行生成的 swf文件。而Flex應用程序要獲取外部html容器傳入的參數,通常是用JavaScript來獲取到相應參數,再讓javaScript傳遞給 ActionScript。
  在Flex應用程序中,我們通常要用到ExternalInterface類,ExternalInterface主要用來讓 ActionScript直接與Flash Player容器進行通信。ExernalInterface類通常作爲ActionScript與JavaScript進行通信的橋樑。
  爲了獲取從html傳入的URL參數,通常傳遞的順序是:html容器->JavaScript->ExternalInterface->ActionScript
  具體實現:
  在Flex中,通過調用ExternalInterface的call方法,參數爲要調用的JavaScript函數,並返回JS函數調用的結果。如: 在JS中,Window對象用來代表一個Web瀏覽器窗口,而窗口的Location對象則代表了當前顯示的URL,於是,要想獲取URL中的參數,
  通常使用下面的語句: 注 :這裏window屬性引用的Window對象自身,而Window對象的location屬性引用的是Location對象。
  通常的參數對以test.html?name=jex&address=chengdu 這樣的形式給出,在獲取到問號後面的URL文本後,還需 要對其分解,這時有兩種途徑,一種是分解過程在JS中完成,然後將最終的結果值傳遞給Flex,另一種是將分解的過程放在Flex中去完成。在這裏使用的 後者(這樣只需寫AS代碼,而不用去寫JS代碼了^_^)
  示例程序代碼如下: value:String = pairs[ i] .substring( pos+1) ;
  params[ argname] = value;
  }
  }
  }
  return params;
  }
  ]]>
  
  
  width =
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章