Flex 3:从URL获取变量 [英] Flex 3: Getting variables from URL
问题描述
如果我的应用程序位于 http://sitename.com/myapp/ ,我想通过URL传递一个变量(即 - http://sitename.com/myapp/?name=Joe ),我怎样才能得到该名称变量为一个字符串var?
<$ p $ href =http://cookbooks.adobe.com/post_How_to_get_Query_String_in_Flex_Applications-17155.html =nofollow>本文。 p> 包
{
import flash.external。*;
import flash.utils。*;
public class QueryString
{
private var _queryString:String;
private var _all:String;
private var _params:Object;
public function get queryString():String
{
return _queryString;
public function get url():String
{
return _all;
public function get parameters():Object
{
return _params;
$ b公共函数QueryString()
{
readQueryString();
private function readQueryString():void
{
_params = {};
尝试
{
_all =
ExternalInterface.call(window.location.href.toString);
_queryString =
ExternalInterface.call(window.location.search.substring,1);
if(_queryString)
{
var params:Array = _queryString.split('&');
var length:uint = params.length;
(var i:uint = 0,index:int = -1; i 0)
{
var key:String = kvPair.substring(0,index);
var value:String = kvPair.substring(index + 1);
_params [key] = value;
$ b} catch(e:Error){trace(发生了一些错误,
ExternalInterface在独立播放器中不起作用。 }
}
}
}
更新:此类的更新版本也可以,尽管我还没有试过这个。
UPDATE 2: If I have an application located at http://sitename.com/myapp/ and i want to pass in a variable via the url (i.e. - http://sitename.com/myapp/?name=Joe), how can I get that name variable into a string var? I use the class Adobe provided in this article. UPDATE: An updated version of this class can also be found here, although I haven't tried this one. UPDATE 2:
Here's an example on how to use the Querystring class:
这篇关于Flex 3:从URL获取变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
这里是一个关于如何使用Querystring类的例子:
$ b $ pre $ public function CheckForIDInQuerystring():void
{
//示例URL:http://www.mysite.com/index.aspx?id=12345
var qs:QueryString = new QueryString;
if(qs.parameters.id!= null)
{
// URL包含id参数
trace(qs.parameters.id);
}
else
{
// URL不包含id参数
trace(No id found。);
}
}
package
{
import flash.external.*;
import flash.utils.*;
public class QueryString
{
private var _queryString:String;
private var _all:String;
private var _params:Object;
public function get queryString():String
{
return _queryString;
}
public function get url():String
{
return _all;
}
public function get parameters():Object
{
return _params;
}
public function QueryString()
{
readQueryString();
}
private function readQueryString():void
{
_params = {};
try
{
_all =
ExternalInterface.call("window.location.href.toString");
_queryString =
ExternalInterface.call("window.location.search.substring", 1);
if(_queryString)
{
var params:Array = _queryString.split('&');
var length:uint = params.length;
for (var i:uint=0,index:int=-1; i 0)
{
var key:String = kvPair.substring(0,index);
var value:String = kvPair.substring(index+1);
_params[key] = value;
}
}
}
}catch(e:Error) { trace("Some error occured.
ExternalInterface doesn't work in Standalone player."); }
}
}
}
public function CheckForIDInQuerystring():void
{
// sample URL: http://www.mysite.com/index.aspx?id=12345
var qs:QueryString = new QueryString;
if (qs.parameters.id != null)
{
// URL contains the "id" parameter
trace(qs.parameters.id);
}
else
{
// URL doesn't contain the "id" parameter
trace("No id found.");
}
}