flash怎么获取浏览器里的url地址以及url后边的参数呢,这里有两种方法。
1,直接call js,让js处理好了,返回过来。
2,直接获取url,自己再解析。
如果仅仅是获取url后边的参数,可以不添加到url里边,动态注入到object,embed标签中,这个时候,用stage.loaderInfo.parameters就可以获取到。
这里记录下,怎么获取url后边的参数。
1,ExternalInterface.call(“eval” , “window.location.href”); 获取到网页url。(eval(“window.location.href”));
2,拆分字符串,获取到后边的参数堆。也就是几个参数比如。 name=vini&sex=boy&city=shanghai
3,用URLVariables格式化参数堆。
4,最后,获取参数,就像操作object一样。
贴出测试code:
go-> http://localhost:8080/TestEval.html?name=vini&sex=boy&city=shanghai
package { import flash.display.Sprite; import flash.events.Event; import flash.external.ExternalInterface; import flash.net.URLVariables; public class TextEval extends Sprite { private var textArea:TextArea ; private var paramURLVariables:URLVariables; public function TextEval() { addEventListener(Event.ADDED_TO_STAGE , addToStageHandler); } private function addToStageHandler(e:Event):void { removeEventListener(Event.ADDED_TO_STAGE , addToStageHandler); initialize(); } private function initialize():void { textArea = new TextArea(450,320,0XF0F0F0); addChild(textArea); textArea.x = (stage.stageWidth - textArea.width)>>1; textArea.y = (stage.stageHeight - textArea.height)>>1; setParams(); printParams(); } private function printParams():void { if(paramURLVariables) { for(var value:String in paramURLVariables) { var param:String = getParam(value); echo(param); } } } private function setParams():void { var url:String; var params:String if(ExternalInterface.available) { url = ExternalInterface.call("eval" , "window.location.href"); } if(url) { params = url.split("?")[1]; paramURLVariables = new URLVariables(params); } } private function getParam(value:String):String { if(paramURLVariables) { return paramURLVariables[value]; } return ""; } private function echo(str:String):void { textArea.addText(str + "\n\n"); } } }