您的位置:首页 > 其它

flex获取url参数的一些写法

2010-02-11 09:18 417 查看
在mxml的application类可以通过geturl获取当前url。获取url可以提供一个很好的方式对swf穿参数。在公司的项目中就大量的应用相关的技术。就和大家分享一下相关的写法,如果写不好就不要笑话哦。

分析url参数类:

package com.sunshine.framework.control
{
import com.sunshine.framework.model.UrlParameters;
import com.sunshine.framework.util.UrlParametersArrayCollection;

public class GetUrlParameters
{
private var _url:String;
private var urlParamenters:UrlParameters;
private var _resultList:UrlParametersArrayCollection=new UrlParametersArrayCollection;

public function GetUrlParameters()
{
}

public function analysisParameters(value:String=null):UrlParametersArrayCollection
{
if (value != null)
{
this._url=value;
var num:int=_url.indexOf("?");
var parametersUrl:String=_url.substring(num + 1);
var parameters:Array=parametersUrl.split(/&/);
for (var i:int=0; i < parameters.length; i++)
{
var parameter:Array=String(parameters[i]).split(/=/);
urlParamenters=new UrlParameters;
urlParamenters.prarameterName=parameter[0];
urlParamenters.prarameter=parameter[1];
_resultList.addParametersModel(urlParamenters);
}
}

return _resultList;
}

public function set url(value:String):void
{
this._url=value;
}

public function get url():String
{
return _url;
}

public function set resultList(value:UrlParametersArrayCollection):void
{
this._resultList=value;
}

public function get resultList():UrlParametersArrayCollection
{
return _resultList;
}

}
}


url参数的model:

package com.sunshine.framework.model
{

public class UrlParameters
{
private var _prarameterName:String;
private var _prarameter:String;

public function UrlParameters()
{
}

public function set prarameterName(value:String):void
{
this._prarameterName=value;
}

public function get prarameterName():String
{
return _prarameterName;
}

public function set prarameter(value:String):void
{
this._prarameter=value;
}

public function get prarameter():String
{
return _prarameter;
}

}
}


url参数的容器:

package com.sunshine.framework.util
{
import com.sunshine.framework.model.UrlParameters;

import mx.collections.ArrayCollection;
import mx.controls.Alert;

public class UrlParametersArrayCollection extends ArrayCollection
{
private var urlParamenters:UrlParameters;

public function UrlParametersArrayCollection(source:Array=null)
{
super(source);
}

public function addParametersModel(value:UrlParameters):void
{
var name:String=value.prarameterName;
var parameter:String=value.prarameter;

var b:Boolean=true;
if (this.length != 0)
{
for (var i:int=0; i < this.length; i++)
{
urlParamenters=this.getItemAt(i) as UrlParameters;
if (name == urlParamenters.prarameterName)
{
(this.getItemAt(i) as UrlParameters).prarameter=parameter;
b=false;
}
}
if (b == true)
{
var urlParamenters:UrlParameters=new UrlParameters;
urlParamenters.prarameterName=name;
urlParamenters.prarameter=parameter;
this.addItem(urlParamenters);
}
}
else
{
var urlParamenters:UrlParameters=new UrlParameters;
urlParamenters.prarameterName=name;
urlParamenters.prarameter=parameter;
this.addItem(urlParamenters);
}
}

public function addParameters(name:String, parameter:String):void
{
var b:Boolean=true;
if (this.length != 0)
{
for (var i:int=0; i < this.length; i++)
{
urlParamenters=this.getItemAt(i) as UrlParameters;
if (name == urlParamenters.prarameterName)
{
(this.getItemAt(i) as UrlParameters).prarameter=parameter;
b=false;
}
}
if (b == true)
{
var urlParamenters:UrlParameters=new UrlParameters;
urlParamenters.prarameterName=name;
urlParamenters.prarameter=parameter;
this.addItem(urlParamenters);
}
}
else
{
var urlParamenters:UrlParameters=new UrlParameters;
urlParamenters.prarameterName=name;
urlParamenters.prarameter=parameter;
this.addItem(urlParamenters);
}
}

public function getParameters(name:String):String
{
var parameters:String="";
if (this.length != 0)
{
for (var i:int=0; i < this.length; i++)
{
urlParamenters=this.getItemAt(i) as UrlParameters;
if (name == urlParamenters.prarameterName)
{
parameters=urlParamenters.prarameter;
}
}
return parameters;
}
else
{
return parameters;
}
}

public function getHandleDataXmlUrl():String
{
var url:String=getParameters("dataUrl");
var handleUrl:String="";
var re:RegExp=/#/;
var results:Array=url.split(re);
for (var i:int=0; i < results.length; i++)
{
if (i % 2 != 0)
{
handleUrl=handleUrl + getParameters(results[i]);
}
else
{
handleUrl=handleUrl + results[i];
}
}
return handleUrl;
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: