AS获取url参数

AS获取url参数

一、页面url参数

这里是调用jseval方法(js中定义)返回url字符串

var urlPath:String = ExternalInterface.call("eval", "window.location.href");//获取页面的url
var param_info:String = urlPath.split("?")[1];//截取url中的参数

Url字符串可以在js中通过window.location获取。

Param_info即为参数字符串,读取单个参数值还需要进行解析。

可以通过window.location方法获取URL   

统一资源定位符 (Uniform Resource Locator, URL) 

 

示例:   

http://www.home.com:8080/windows/location/page.html?ver=1.0&id=timlq#love   

1, window.location.href   整个URl字符串(浏览器中就是完整的地址栏  

返回值:

http://www.home.com:8080/windows/location/page.html?ver=1.0&id=timlq#love   

 

2,window.location.protocol   

URL 的协议部分   

返回值:http:   

 

3,window.location.host   

URL 的主机部分,   

返回值:www.home.com  

 

4,window.location.port   

URL 的端口部分。如果采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符。   

本例返回值:8080   

 

5,window.location.pathname   

URL 的路径部分(就是文件地址  

返回值:/windows/location/page.html   

 

6,window.location.search   

查询(参数)部分。除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值   

返回值:?ver=1.0&id=timlq   

 

7,window.location.hash   

锚点   

返回值:#love

 

二、swf url 参数

 

主要就是使用LoaderInfo类获取加载swf时加载参数

 

例:

网页可以通过swf地址给flash传递变量,以值对的形式传递,如下:

          <object classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000"
                        id="LoaderInfoSample" width="100%" height="100%"
                        codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
                        <param name="movie" value="LoaderInfoSample.swf?a=1&b=2" />
                        <param name="quality" value="high" />
                        <param name="bgcolor" value="#869ca7" />
                        <param name="allowScriptAccess" value="sameDomain" />
                        <embed src="LoaderInfoSample.swf?a=1&b=2" quality="high" bgcolor="#869ca7"
                                width="100%" height="100%" name="LoaderInfoSample" align="middle"
                                play="true"
                                loop="false"
                                quality="high"
                                allowScriptAccess="sameDomain"
                                type="application/x-shockwave-flash"
                                pluginspage="http://www.adobe.com/go/getflashplayer">
                        </embed>
        </object>
       
ActionSrippt2时,在第一帧就可以直接引用传递进来的这两个变量值了。
AS3抛弃了这种不规范的用法,同意使用LoaderInfoParameter属性来完成。

LoaderInfo的帮助文档请参考:http://livedocs.macromedia.com/l ... lay/LoaderInfo.html
LoaderInfo 这个类是专门设计来保存swf,图片,或者其他任意DisplayObject的加载信息的。
swf参数也属于加载信息里的一部分,可以通过LoaderInfoparameters属性取得,取出的结果是一个数组,可以通过for...in遍历他的值。

示例代码如下:
package org.flashbbs.sample
{
        import flash.display.MovieClip;
        import flash.display.LoaderInfo;
        import flash.text.TextField;
       
        public class LoaderInfoSample extends MovieClip
        {
                public function LoaderInfoSample(){
                        var key:String;
                        var value:String;
                        var text1:TextField = new TextField();
                        addChild(text1);
                        var param:Object = this.root.loaderInfo.parameters;
                        for (key in param) {
                                value = String(param[key]);
                                text1.appendText(key + "=" +value);
                        }
                }
        }
}

还有一点要注意的是,LoaderInfo属于As3的类,如果flash包含as1或者as2的代码,则它无法取出值,只能取出null

posted @ 2012-09-03 11:09  ☆A希亿  阅读(1642)  评论(0编辑  收藏  举报