外界与Flex Application的交互处理(之传递参数)

编程入门 行业动态 更新时间:2024-10-19 10:21:12

<a href=https://www.elefans.com/category/jswz/34/1766332.html style=外界与Flex Application的交互处理(之传递参数)"/>

外界与Flex Application的交互处理(之传递参数)

在现实应用中,涉及到很多地方,外部页面需要与flex application进行参数或者数据的交互,甚至相互行为影响。今天先来看看外部页面传递参数给flex application。

 

但首先还得介绍一个swfobject的开源。swfobject使得在页面中嵌入flash文件更加容易简易。那种传统的<object id="xxx">之类的引入flash的方式,确实有很多弊端和不足。而swfobject则让你的页面处理更为简洁。具体就不介绍了,可参考 / ,或中国参考手册: 。

 

俺就是采用swfobject来引入flash,并传递参数的。一下是一个简单的例子:
view plaincopy to clipboardprint?
<mce:script. type="text/javascript" src="swfobject.js" mce_src="swfobject.js"></mce:script>  
<mce:script. type="text/javascript"><!--  
  var flashvars = {    
  fetchProcessDefURL: "http://localhost:8080/ProcessContentServlet",  
  fetchProcessDefID: "<%=processDefID%>" 
  };    
  var params = {};    
  var attributes = {};    
  swfobject.embedSWF("flowdesigner.swf", "myContent", "100%", "100%", "9.0.0",   
                     "expressInstall.swf",flashvars,params,attributes);  
// --></mce:script>  
 
<body>  
<div id="myContent">  
</div>  
</body> 
<mce:script. type="text/javascript" src="swfobject.js" mce_src="swfobject.js"></mce:script>
<mce:script. type="text/javascript"><!--
  var flashvars = { 
  fetchProcessDefURL: "http://localhost:8080/ProcessContentServlet",
  fetchProcessDefID: "<%=processDefID%>"
  }; 
  var params = {}; 
  var attributes = {}; 
  swfobject.embedSWF("flowdesigner.swf", "myContent", "100%", "100%", "9.0.0",
                     "expressInstall.swf",flashvars,params,attributes);
// --></mce:script>

<body>
<div id="myContent">
</div>
</body>

上面的代码,就是往 flowdesigner.swf 文件中传递了两个参数。这两个参数则可以在flex中application complete事件处理中被获取(加入你是希望在flash被加载的同时获取到)。

 

 

 view plaincopy to clipboardprint?
<mx:Application xmlns:mx=""   
    applicationComplete="appComplete()">  
      
    <mx:Script>  
    <!--[CDATA[  
    public function appComplete():void{  
        var fetchProcessDefURL:String = this.loaderInfo.parameters.fetchProcessDefURL;  
        var fetchProcessDefID:String = this.loaderInfo.parameters.fetchProcessDefID;  
       
             //遍历所有参数  
        var keyStr:String;  
        var valueStr:String;  
        var paramObj:Object = this.loaderInfo.parameters;  
        var urlvarsData:String = "";  
        for (keyStr in paramObj) {  
            if(keyStr!="fetchProcessDefURL"){  
                valueStr = String(paramObj[keyStr]);  
                urlvarsData = "&"+keyStr+"="+valueStr+urlvarsData;  
        }  
        }  
        urlvarsData = urlvarsData.substr(1);  
        var params:URLVariables = new URLVariables(urlvarsData);  
 
                  //fetchProcessDefinitionHttpService上一个http service请求  
        fetchProcessDefinitionHttpService.url=fetchProcessDefURL;   
        fetchProcessDefinitionHttpService.method="GET";   
        fetchProcessDefinitionHttpService.send(params);  
    }  
    ]]-->  
     </mx:Script>  
</mx:Application> 
<mx:Application xmlns:mx=""
    applicationComplete="appComplete()">
   
    <mx:Script>
 <!--[CDATA[
 public function appComplete():void{
     var fetchProcessDefURL:String = this.loaderInfo.parameters.fetchProcessDefURL;
     var fetchProcessDefID:String = this.loaderInfo.parameters.fetchProcessDefID;
 
             //遍历所有参数
     var keyStr:String;
     var valueStr:String;
     var paramObj:Object = this.loaderInfo.parameters;
     var urlvarsData:String = "";
     for (keyStr in paramObj) {
      if(keyStr!="fetchProcessDefURL"){
          valueStr = String(paramObj[keyStr]);
          urlvarsData = "&"+keyStr+"="+valueStr+urlvarsData;
  }
     }
  urlvarsData = urlvarsData.substr(1);
  var params:URLVariables = new URLVariables(urlvarsData);

                  //fetchProcessDefinitionHttpService上一个http service请求
  fetchProcessDefinitionHttpService.url=fetchProcessDefURL;
  fetchProcessDefinitionHttpService.method="GET";
  fetchProcessDefinitionHttpService.send(params);
 }
 ]]-->
     </mx:Script>
</mx:Application>

 

如上面代码所以,在ApplicationComplete事件处理方法中利用 loaderInfo.parameters来获取相应的参数。

在上面的例子中,会在application complete完成后,发送一个http service请求。有关http service的处理此处就不再累赘介绍了,外面的资料太多。

更多推荐

外界与Flex Application的交互处理(之传递参数)

本文发布于:2024-02-12 04:53:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1686132.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:外界   参数   Flex   Application

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!