html、swf、jsp三种情况下Flex中如何获得地址栏参数

一般flex给外界调用会部署成三种方式:如:

http://localhost:8080/monitor.htm#type=test&...

  http://localhost:8080/monitor.swf?type=test&...

http://localhost:8080/monitor.jsp?type=test&...

如何获得这三种不同的方式 下的参数呢?

第一种情况:通过BrowserManager直接获得#后面的参数,然后分割字符串&即可:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600"
                creationComplete
="init()">
    
<mx:Script>
        
<![CDATA[
            import mx.controls.Alert;
            import mx.managers.BrowserManager;
            import mx.managers.IBrowserManager;
            protected 
function init():void
            {
                
var bm:IBrowserManager = BrowserManager.getInstance();
                bm.init();
                
var para:String = bm.fragment;
                
                Alert.show(para);
            }
        ]]
>
    
</mx:Script>

</mx:Application>  

第二种情况:通过Application.pararms

var str:String = application.parameters.type; 

 第三种情况:通过和js交互,获得参数值

 function getVars(){
                  
var url = location.href;  
                  
var pattern = /(\w+)=(\w+)/ig;
                  
var parames = {};
                  url.replace(pattern, 
function(a, b, c){
                        parames[b] 
= c;
                  });
                  
                   
var o = new Object();
                   o.topoId 
= parames['topoId'] ;
                   o.nodeId 
= parames['nodeId'] ;
                   
return o;

 在flex中

/**获得url地址栏上的参数*/

var info:Object = ExternalInterface.call("getVars"); 

posted @ 2011-06-14 18:16  斜风细雨zeng  阅读(692)  评论(0编辑  收藏  举报