0
我已经创建了一个flex应用工具,它使用BrowserManager类来同步flex应用工具和浏览器前进/后退按钮。它在Firefox中正常工作,但在其他浏览器(safari,IE,Chrome)中无法正常工作。有没有什么办法可以将flex应用工具与浏览器前进和后退按钮同步
代码是便接踵而来:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
historyManagementEnabled="false"
creationComplete="onCreationComplete()">
<mx:Script>
<![CDATA[
import mx.effects.effectClasses.AddRemoveEffectTargetFilter;
import mx.events.BrowserChangeEvent;
import mx.managers.IBrowserManager;
import mx.managers.BrowserManager;
import mx.utils.URLUtil;
private var bm:IBrowserManager;
private function onCreationComplete() : void
{
bm = BrowserManager.getInstance(); //get an instance of the browserManager
bm.init(); //initialize the browser manager
updateContainers(); //set visible containers based on url parameters
bm.addEventListener(BrowserChangeEvent.BROWSER_URL_CHANGE, onURLChange); //add event listeners to handle back/forward browser buttons
updateURL();
}
private function updateContainers():void
{
var o:Object = URLUtil.stringToObject(bm.fragment);
if (!isNaN(o.selectedIndex))
{
var newIndex : Number = o.selectedIndex;
if (newIndex >= 0 && newIndex < tabNav.numChildren)
tabNav.selectedIndex = newIndex;
}
}
private function onURLChange(event:BrowserChangeEvent):void
{
updateContainers();
}
private function updateURL():void
{
bm.setFragment("selectedIndex=" + tabNav.selectedIndex);
}
]]>
</mx:Script>
<mx:TabNavigator
bottom="10"
top="10"
right="10"
left="10"
id="tabNav"
historyManagementEnabled="false"
>
<mx:Canvas label="Tab 0" show="updateURL()" >
<mx:Label text="Tab 0 Contents" />
</mx:Canvas>
<mx:Canvas label="Tab 1" show="updateURL()" >
<mx:Label text="Tab 1 Contents" />
</mx:Canvas>
<mx:Canvas label="Tab 2" show="updateURL()" >
<mx:Label text="Tab 2 Contents" />
</mx:Canvas>
</mx:TabNavigator>
</mx:Application>
Is there any solution for this problem...?
请更具体一些吗?出了什么问题?你能发布你试图解决这个问题吗? –
我已经做了一个应用程序,我已经使用BrowserManager类来管理浏览器的历史。该应用程序在Fire Fox中运行良好,但在Chrome,Safari和IE中无法正常工作。我应该怎么做才能使我的应用程序在这些浏览器上正常运行。 – Shaun