[AS3]AS语言获取url参数的说明
AS获取url参数
一、页面url参数
这里是调用js的eval方法(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抛弃了这种不规范的用法,同意使用LoaderInfo的Parameter属性来完成。
LoaderInfo的帮助文档请参考:http://livedocs.macromedia.com/l ... lay/LoaderInfo.html
LoaderInfo 这个类是专门设计来保存swf,图片,或者其他任意DisplayObject的加载信息的。
swf参数也属于加载信息里的一部分,可以通过LoaderInfo的parameters属性取得,取出的结果是一个数组,可以通过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
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- [AS3]as3.0的sound类常用技巧整理
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例