Flex 3:从URL获取变量 [英] Flex 3: Getting variables from URL

查看:161
本文介绍了Flex 3:从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:这里是一个关于如何使用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。);
}
}


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.

  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."); }
      }

    }
  }

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:

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.");
  }
}

这篇关于Flex 3:从URL获取变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆