Flex获取参数(一)——window.location.search.substring
第1步:在网页中设置一个链接,如 <a href="test.asp?p1=test1&p2=test2">测试链接一</a>,其中test.asp嵌入了flash
第2步:获取参数,生成flash的mxml文件源码如下:
1、获取所有参数
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="init(event)">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
//import mx.controls.Alert;
import mx.events.FlexEvent;
private var params:Object;
private function init(event:FlexEvent):void {
btnID.addEventListener(MouseEvent.CLICK, clickHandler);
}
private function clickHandler(evt:Event):void {
var args:Object = getParams();
for(var name:String in args){
dispID.text += "name:" + name + "\n" + "address:" + args[name] + "\n";
}
}
private function getParams():Object {
params = {};
var query:String = ExternalInterface.call("window.location.search.substring", 1);
//Alert.show(ExternalInterface.call("window.location.href.toString",1));
//Alert.show(query);
if(query) {
var pairs:Array = query.split("&");
for(var i:uint=0; i < pairs.length; i++) {
var pos:int = pairs[i].indexOf("=");
//Alert.show(String(pos));
if(pos != -1) {
var argname:String = pairs[i].substring(0, pos);
var argvalue:String = pairs[i].substring(pos+1);
params[argname] = argvalue;
}
}
}
return params;
}
]]>
</fx:Script>
<s:Button id="btnID" y="218" label="GetParams" horizontalCenter="0"/>
<s:TextArea id="dispID" y="47" width="200" horizontalCenter="0"/>
</s:Application>
2、获取指定参数
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="init(event)">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
private var params:Object;
private function init(event:FlexEvent):void {
btnID.addEventListener(MouseEvent.CLICK, clickHandler);
}
private function clickHandler(evt:Event):void {
var args:Object = getParams();
var param1:String=params["test1"];
Alert.show(param1);
}
private function getParams():Object {
params = {};
var query:String = ExternalInterface.call("window.location.search.substring", 1);
//Alert.show(ExternalInterface.call("window.location.href.toString",1));
//Alert.show(query);
if(query) {
var pairs:Array = query.split("&");
for(var i:uint=0; i < pairs.length; i++) {
var pos:int = pairs[i].indexOf("=");
//Alert.show(String(pos));
if(pos != -1) {
var argname:String = pairs[i].substring(0, pos);
var argvalue:String = pairs[i].substring(pos+1);
params[argname] = argvalue;
}
}
}
return params;
}
]]>
</fx:Script>
<s:Button id="btnID" y="218" label="get test1" horizontalCenter="0"/>
</s:Application>
注:如果window.location.search.substring换成window.location.href.toString 则可获取完整的url
参考:
http://blog.csdn.net/cyyingsun/article/details/7577223
http://www.cnblogs.com/cos2004/archive/2011/03/30/19×××5.html(//或者用for in来遍历)
转载于:https://blog.51cto.com/332374363/1123348