·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]AS语言获取url参数的说明

时间:2014-12-18 09:39酷播
[AS3]AS语言获取url参数的说明,Url字符串可以在js中通过window.location获取。Param_info即为参数字符串,读取单个参数值还需要进行解析

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传递变量,以值对的形式传递,如下:

  1.   <object classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000" 
  2.                 id="LoaderInfoSample" width="100%" height="100%" 
  3.                 codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"> 
  4.                 <param name="movie" value="LoaderInfoSample.swf?a=1&b=2" /> 
  5.                 <param name="quality" value="high" /> 
  6.                 <param name="bgcolor" value="#869ca7" /> 
  7.                 <param name="allowScriptAccess" value="sameDomain" /> 
  8.                 <embed src="LoaderInfoSample.swf?a=1&b=2" quality="high" bgcolor="#869ca7" 
  9.                         width="100%" height="100%" name="LoaderInfoSample" align="middle" 
  10.                         play="true" 
  11.                         loop="false" 
  12.                         quality="high" 
  13.                         allowScriptAccess="sameDomain" 
  14.                         type="application/x-shockwave-flash" 
  15.                         pluginspage="http://www.adobe.com/go/getflashplayer"> 
  16.                 </embed> 
  17. </object> 


ActionSrippt2时,在第一帧就可以直接引用传递进来的这两个变量值了。
AS3抛弃了这种不规范的用法,同意使用LoaderInfoParameter属性来完成。

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

示例代码如下:

  1. package org.flashbbs.sample 
  2.         import flash.display.MovieClip; 
  3.         import flash.display.LoaderInfo; 
  4.         import flash.text.TextField; 
  5.         
  6.         public class LoaderInfoSample extends MovieClip 
  7.         { 
  8.                 public function LoaderInfoSample(){ 
  9.                         var key:String; 
  10.                         var value:String; 
  11.                         var text1:TextField = new TextField(); 
  12.                         addChild(text1); 
  13.                         var param:Object = this.root.loaderInfo.parameters; 
  14.                         for (key in param) { 
  15.                                 value = String(param[key]); 
  16.                                 text1.appendText(key + "=" +value); 
  17.                         } 
  18.                 } 
  19.         } 



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

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器