Flex获得url传递的参数值

在Flex中要获得url传递的参数值时,分两种情况:

第一种,如果是在浏览器直接打开swf文件,如下所示:

http://www.example.com/example.swf?name=value

上面这种情况下可以直接使用this.parameters.name这种方式在flex里面取url参数。

第二种,如果是要在一个包含swf文件的html页面中获得参数值,如下所示:

这时取得url参数就相对要麻烦点,在网上找了些方法,觉得还是jexchen的方法最方便,详细请看:《Flex程序如何获取html容器传递的URL参数值》

我把他的代码稍微改了点,可以用表格的方式直接看url参数。


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();" verticalAlign="middle" horizontalAlign="center">
	<mx:Script>
	<![CDATA[
		import mx.collections.ArrayCollection;
		[Bindable]
		public var dp:ArrayCollection = new ArrayCollection();

		private function init():void{
			var myStr:String=ExternalInterface.call("window.location.search.substring",1);
			if(myStr){
				var pairs:Array = myStr.split("&");
				for(var i:uint=0;i< pairs.length;i++){
					var pos:int = pairs[i].indexOf("=");
					if(pos != -1){
						var argname:String = pairs[i].substring(0, pos);
						var value:String = pairs[i].substring(pos+1);
						var myObj:Object=new Object();
						myObj['name']=pairs[i].substring(0, pos);
						myObj['value']=pairs[i].substring(pos+1);
						dp.addItem(myObj);
					}
				}
			}
		}
	]]>
	</mx:Script>

	<mx:DataGrid dataProvider="{dp}">
	<mx:columns>
		<mx:DataGridColumn dataField="name" headerText="Name" />
		<mx:DataGridColumn dataField="value" headerText="Value" />
	</mx:columns>

	</mx:DataGrid>
</mx:Application>

演示:请点击这里jexchen现在又找到一个用SWFObject的新方法来获得url参数值,可以参看《再谈:Flex程序如何获取html容器传递的URL参数值》

此条目发表在 Flash 分类目录,贴了 , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>