flex BrowserManager

1. BrowserManager
import mx.managers.BrowserManager;
import mx.managers.IBrowserManager;
private function changePageTitle( newTitle : String ) : void
{
// get an instance of the browser manager
var bm : IBrowserManager = BrowserManager.getInstance();
// initialize the browser manager
bm.init();
bm.setTitle( newTitle );//设置当前浏览器的标题
//bm.base; 获取不带参数的url路径
// bm.fragment 获取当前 URL 显示在浏览器地址栏中时,“#”之后的部分。
// bm.url 获取当前浏览器的路径
IBrowserManager---相关事件
browserURLChange 当浏览器更改 URL 时调度。 IBrowserManager
change 当通过用户与浏览器交互、调用 AIR 中的应用程序或以编程方式设置此属性来更改 URL 时调度。 IBrowserManager
urlChange 当应用程序更改 URL 时调度。 IBrowserManager
//http://localhost:8501/flex4cookbook/main.html#name=Andrew;index=12345;productId=987
var o:Object = URLUtil.stringToObject(bm.fragment);
ObjectUtil.toString( o );//(Object)#0 index = 12345 name = "Andrew" productId = 987
// o.name Andrew
}

2.URLUtil
URLUtil.getPort 返回指定 URL 的端口号。
URLUtil.getProtocol(url):协议的名称
getProtocol("https://localhost:2700/") returns "https"
getProtocol("rtmp://www.myCompany.com/myMainDirectory/groupChatApp/HelpDesk") returns "rtmp"
getProtocol("rtmpt:/sharedWhiteboardApp/June2002") returns "rtmpt"
getProtocol("rtmp::1234/chatApp/room_name") returns "rtmp"
URLUtil.getServerName(url);//返回指定 URL 的服务器名称。
URLUtil.getServerNameWithPort(url);//返回指定 URL 的域和端口信息。
URLUtil.isHttpsURL(url);//确定 URL 是否使用安全 HTTPS 协议。
URLUtil.isHttpURL(url);//确定 URL 是否使用 HTTP、HTTPS 或 RTMP 协议。

3.动态改变url的参数

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo"
minWidth="1024" minHeight="768"
creationComplete="onCreationComplete()" >
<fx:Script>
<![CDATA[
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();
bm.init();
updateValues();
bm.addEventListener( BrowserChangeEvent.BROWSER_URL_CHANGE,
onURLChange );
}
private function updateValues():void
{
var o:Object = URLUtil.stringToObject(bm.fragment);
firstName.text = o.firstName;
lastName.text = o.lastName;
}
private function updateURL():void
{
bm.setFragment( "firstName=" + firstName.text + ";lastName=" +
lastName.text );
}
private function onURLChange( event : BrowserChangeEvent ):void
{
updateValues();
}
]]>
</fx:Script>
<s:TextInput x="10" y="10" id="firstName" change="updateURL()" />
<s:TextInput x="10" y="40" id="lastName" change="updateURL()" />
</s:Application>



<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo"
minWidth="1024" minHeight="768"
creationComplete="onCreationComplete()" xmlns:mx1="library://ns.adobe.com/flex/mx" >
<fx:Script>
<![CDATA[
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();
bm.init();
updateContainers();
bm.addEventListener( BrowserChangeEvent.BROWSER_URL_CHANGE,
onURLChange );
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 );
}
]]>
</fx:Script>
<mx1:TabNavigator bottom="10" top="10" right="10" left="10"
id="tabNav" historyManagementEnabled="false" >
<s:NavigatorContent label="Tab 0" show="updateURL()" >
<s:Label text="Tab 0 Contents" />
</s:NavigatorContent>
<s:NavigatorContent label="Tab 1" show="updateURL()" >
<s:Label text="Tab 1 Contents" />
</s:NavigatorContent>
<s:NavigatorContent label="Tab 2" show="updateURL()" >
<s:Label text="Tab 2 Contents" />
</s:NavigatorContent>
</mx1:TabNavigator>
</s:Application>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值