Flex获得URL参数
???? Flex获得URL参数 ? Flex获得URL参数有两种情况:一 获得swf后面的参数;二 获得swf所在页面的url参数。 ????? 1 获得swf后面的参数 ??????? Application Module等编译后生成一个swf文件,外面可以在swf后面添加一些参数来实现某些功能,例如debug=true,动态调整flex的日志级别。 ??????? 如果是Application或Module等,可以直接用this.loaderInfo.parameters.var1; ??????? 如果是其它的就需要获得该DisplayObject 对象的root对象来获得参数,例如:root.loaderInfo.parameters.var1; ? ????? 2 获得swf所在页面的url参数 ?????????在flash builder中调试的时候,html页面后面的参数自动的添加了debug=true,flex是如何获得该参数的呢?答案是JavaScript。 通常使用下面的语句: ??????? window.location.href.toString?? //得到URL的完整文本???? var queryParamStr:String = ExternalInterface.call("window.location.search.substring",1);
? queryParamStr包含所有的url参数,下面是解析url参数的方法 ? /** * 获得一个url中的参数 * @param urlStr * @return 如果没有参数则返回null 有参数则返回key value形式的对象 * */ public static function getUrlParam(urlStr:String):Object{ var pattern:RegExp= /.*?/; urlStr=urlStr.replace(pattern,""); if(urlStr.indexOf("=")==-1) { return null; } // 通过&拆分成数组name=value,保存为String类型数据 var params:Array=urlStr.split("&"); if(params==null||params.length==0){ return null; } var paramObj:Object={}; for(var i:int=0;i<params.length;i++){ var keyValue:Array=params[i].split("="); paramObj[keyValue[0]]=keyValue[1]; } return paramObj; } 使用实例 ? import mx.utils.ObjectProxy; [Bindable] private var qyjlsp:Qyjlsp; public function init():void{ var op:ObjectProxy= new ObjectProxy(); var pattern:RegExp = /.*?/; var query:String = loaderInfo.url.toString(); query = query.replace( pattern,"" ); var params:Array = query.split( "&" ); for( var i:int = 0; i < params.length; i++ ) { var keyVal:Array = ( params[i] ).toString().split("="); op[keyVal[0]] = keyVal[1]; } if(op.runId)runId=op.runId; if(op.nodeId)nodeId=op.nodeId; if(op.taskid)taskid=op.taskid; if(op.nodeName)nodeName=op.nodeName; }
??? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |