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

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

 

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

 

俺就是采用swfobject来引入flash,并传递参数的。一下是一个简单的例子:

  1. <mce:script type="text/javascript" src="swfobject.js" mce_src="swfobject.js"></mce:script>   
  2. <mce:script type="text/javascript"><!--   
  3.   var flashvars = {     
  4.   fetchProcessDefURL: "http://localhost:8080/ProcessContentServlet",   
  5.   fetchProcessDefID: "<%=processDefID%>"  
  6.   };     
  7.   var params = {};     
  8.   var attributes = {};     
  9.   swfobject.embedSWF("flowdesigner.swf""myContent""100%""100%""9.0.0",    
  10.                      "expressInstall.swf",flashvars,params,attributes);   
  11. // --></mce:script>   
  12.   
  13. <body>   
  14. <div id="myContent">   
  15. </div>   
  16. </body>  



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

 

 

 

 

  1. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"    
  2.     applicationComplete="appComplete()">   
  3.        
  4.     <mx:Script>   
  5.     <!--[CDATA[   
  6.     public function appComplete():void{   
  7.         var fetchProcessDefURL:String = this.loaderInfo.parameters.fetchProcessDefURL;   
  8.         var fetchProcessDefID:String = this.loaderInfo.parameters.fetchProcessDefID;   
  9.         
  10.              //遍历所有参数   
  11.         var keyStr:String;   
  12.         var valueStr:String;   
  13.         var paramObj:Object = this.loaderInfo.parameters;   
  14.         var urlvarsData:String = "";   
  15.         for (keyStr in paramObj) {   
  16.             if(keyStr!="fetchProcessDefURL"){   
  17.                 valueStr = String(paramObj[keyStr]);   
  18.                 urlvarsData = "&"+keyStr+"="+valueStr+urlvarsData;   
  19.         }   
  20.         }   
  21.         urlvarsData = urlvarsData.substr(1);   
  22.         var params:URLVariables = new URLVariables(urlvarsData);   
  23.   
  24.                   //fetchProcessDefinitionHttpService上一个http service请求   
  25.         fetchProcessDefinitionHttpService.url=fetchProcessDefURL;    
  26.         fetchProcessDefinitionHttpService.method="GET";    
  27.         fetchProcessDefinitionHttpService.send(params);   
  28.     }   
  29.     ]]-->   
  30.      </mx:Script>   
  31. </mx:Application>  

 

 

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值