Flex有兩個可以管理「瀏覽器歷程的」的原生類,一個是BrowserManager一個是HistoryManager,搜尋過網路上資訊得知,現在大多以BowserManager為主HistoryManager已經少用,但是為什麼、是否需視不同狀況而用,目前本編不下結果,原因是還未做過HistoryManager的測試,待測試過後再來做個比較文章,因此本編著重於BrowserManager與IBrowserManager的應用測試。
/****
* 注意:測試時發現,使用SDK3.5運作不正常,用SDK 4,深層管理運作正常,問題還未查明。
* 參考文件 Adobe官方文件:
* http://help.adobe.com/zh_CN/AS3LCR/Flex_4.0/mx/managers/IBrowserManager.html
* http://help.adobe.com/zh_CN/AS3LCR/Flex_4.0/mx/managers/BrowserManager.html
*
* 主要用法:BrowserManager類只用來拿到實體,
*主要操作是藉由IBrowserManager介面來實現操作。
* */
//測試程式
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
historyManagementEnabled="false"
creationComplete="startProcess()"
>
<!--
BrowserManagerManager與historyManager同時間只能用一個,
因此使用BrowserManager做深層管理時要將historyManagementEnabled設為flase
-->
<mx:Script>
<![CDATA[
import mx.events.BrowserChangeEvent;
import mx.managers.BrowserManager;
import mx.managers.IBrowserManager;
import mx.utils.ObjectUtil;
import mx.utils.URLUtil;
private var _IbrowserManager:IBrowserManager;
private function startProcess():void
{
/*Step1.
取得BrowserManager實體,BowserManager是一個獨體模式,
因此使用getInstance取回運行環境中唯一的實體物件。
*/
_IbrowserManager = BrowserManager.getInstance();
//Step2. 初始化BrowserManager
_IbrowserManager.init();
//將Browser的各項屬性,呈現於From表單結構上
updateValue();
//對BrowserManager加上真聽式
addListener();
}