Flex - 获取网页传递过来的参数(URL参数、FlashVars参数)
网页如果想传递参数给 Flex 或 Flash,通常有两种方法:将参数放在 URL 地址后面,或者在页面上的 flashvar 标签中进行配置。下面分别介绍这两种方式。
1,获取浏览器URL地址中的参数
比如生成的 swf 文件所在页面的 url 地址如下,我们需要取出其中的参数部分(即 name=v1&token=124)。
(1)下面方法获取所有的参数(返回值是一个对象)
public function getQueryParams():Object { var params:Object = {} var query:String = ExternalInterface.call("window.location.search.substring",1); if(query) { var paris:Array = query.split("&"); for(var i:uint=0; i<paris.length; i++) { var pos:int = paris[i].indexOf("="); if(pos!=-1) { var argname:String = paris[i].substring(0,pos); var value:String = paris[i].substring(pos+1); params[argname] = value; } } } return params; }
(2)下面方法根据参数名获取对应的参数值
public function getQueryParam(name:String):String { var query:String = ExternalInterface.call("window.location.search.substring",1); if(query) { var paris:Array = query.split("&"); for(var i:uint=0; i<paris.length; i++) { var pos:int = paris[i].indexOf("="); if(pos!=-1) { var argname:String = paris[i].substring(0,pos); var value:String = paris[i].substring(pos+1); if(argname == name){ return value; } } } } return ""; }
2,读取FlashVars中的参数
swf 如果是使用 js 方式嵌入的话,FlashVars 参数配置方式如下:swf 如果是通过 embed 方式加载的话,FlashVars 参数配置方式如下:
不管使用哪种方式,Flex 代码中获取 FlashVars 参数的方法都是一样的。比如下面代码获取前面配置的两个 FlashVars 参数。
var name:String = Application.application.parameters.name var token:String = Application.application.parameters.token