Flex与后台交互的4种方法

一、HTTPService

程序代码:





  1. <?xml version="1.0" encoding="utf-8"?>  

  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initializeHandler(event)">  

  3. <mx:Script>  

  4. <!--[CDATA[  

  5. private function initializeHandler(event:Event):void {  

  6. countriesService.send();  

  7. }  

  8. private function changeHandler(event:Event):void {  

  9. statesService.send();  

  10. }  

  11. ]]>  

  12. </mx:Script>  

  13. <!-- 载 入纯静态的xml数据 -->  

  14. <mx:HTTPService id="countriesService" url="http://www.rightactionscript.com/states/xml/countries.xml" />  

  15. <!-- 载入由php生成的xml数据 -->  

  16. <mx:HTTPService id="statesService" url="http://www.rightactionscript.com/states/xml/states.php">  

  17. <!-- 以下标签就是要发送到服务端的数据了,可以这样理解:有一个名为 country的变量,它的值为 花括号{}里的内容 -->  

  18. <mx:request>  

  19. <country>{country.value}</country>  

  20. </mx:request>  

  21. </mx:HTTPService>  

  22. <mx:VBox>  

  23. <!-- 此 控件的数据由第一个<mx:HTTPService/>控件接收的内容提供,并且由这个ComboBox控制着第二个ComboBox所要显 示的内容 -->  

  24. <mx:ComboBox id="country" dataProvider="{countriesService.lastResult.countries.country}"  

  25. change="changeHandler(event)" />  

  26. <!-- 下面的ComboBox已经绑定了 {statesService.lastResult.states.state},随它的数据改变而改变 -->  

  27. <mx:ComboBox dataProvider="{statesService.lastResult.states.state}" />  

  28. </mx:VBox>  

  29. </mx:Application>  



  

二、URLLoader

程序代码:





  1. <?xml version="1.0" encoding="utf-8"?>  

  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initializeHandler(event)">  

  3. <mx:Script>  

  4. <!--[CDATA[  

  5. private var _countriesService:URLLoader;  

  6. private var _statesService:URLLoader;  

  7. private function initializeHandler(event:Event):void {  

  8. _countriesService = new URLLoader();  

  9. _countriesService.addEventListener(Event.COMPLETE, countriesCompleteHandler);  

  10. _countriesService.load(new URLRequest("http://www.rightactionscript.com/states/xml/countries.xml"));  

  11. _statesService = new URLLoader();  

  12. _statesService.addEventListener(Event.COMPLETE, statesCompleteHandler);  

  13. XML.ignoreWhitespace = true;  

  14. }  

  15. private function countriesCompleteHandler(event:Event):void {  

  16. var xml:XML = new XML(_countriesService.data);  

  17. country.dataProvider = xml.children();  

  18. }  

  19. private function statesCompleteHandler(event:Event):void {  

  20. var xml:XML = new XML(_statesService.data);  

  21. state.dataProvider = xml.children();  

  22. }  

  23. private function changeHandler(event:Event):void {  

  24. var request:URLRequest = new URLRequest("http://www.rightactionscript.com/states/xml/states.php");  

  25. var parameters:URLVariables = new URLVariables();  

  26. parameters.country = country.value;  

  27. request.data = parameters;  

  28. _statesService.load(request);  

  29. }  

  30. ]]-->  

  31. </mx:Script>  

  32. <mx:VBox>  

  33. <mx:ComboBox id="country" change="changeHandler(event)" />  

  34. <mx:ComboBox id="state" />  

  35. </mx:VBox>  

  36. </mx:Application>  







三、WebService 方法一

程序代码:




  1. <?xml version="1.0" encoding="utf-8"?>  

  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initializeHandler(event)">  

  3. <mx:Script>  

  4. <!--[CDATA[  

  5. private function initializeHandler(event:Event):void {  

  6. statesService.getCountries();  

  7. }  

  8. private function changeHandler(event:Event):void {  

  9. statesService.getStates(country.value);  

  10. }  

  11. ]]-->  

  12. </mx:Script>  

  13. <mx:WebService id="statesService"  

  14. wsdl="http://www.rightactionscript.com/states/webservice/StatesService.php?wsdl">  

  15. <mx:operation name="getCountries" />  

  16. <mx:operation name="getStates" />  

  17. </mx:WebService>  

  18. <mx:VBox>  

  19. <mx:ComboBox id="country"  

  20. dataProvider="{statesService.getCountries.lastResult}" change="changeHandler(event)" />  

  21. <mx:ComboBox dataProvider="{statesService.getStates.lastResult}" />  

  22. </mx:VBox>  

  23. </mx:Application>  




四、WebService 方法二

程序代码:





  1. <?xml version="1.0" encoding="utf-8"?>  

  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initializeHandler(event)">  

  3. <mx:Script>  

  4. <![CDATA[  

  5. private function initializeHandler(event:Event):void {  

  6. statesService.getCountries.send( );  

  7. }  

  8. private function changeHandler(event:Event):void {  

  9. statesService.getStates.send( );  

  10. }  

  11. ]]-->  

  12. </mx:Script>  

  13. <mx:WebService id="statesService" wsdl="http://www.rightactionscript.com/states/webservice/StatesService.php?wsdl">  

  14. <mx:operation name="getCountries" />  

  15. <mx:operation name="getStates">  

  16. <mx:request>  

  17. <country>{country.value}</country>  

  18. </mx:request>  

  19. </mx:operation>  

  20. </mx:WebService>  

  21. <mx:VBox>  

  22. <mx:ComboBox id="country"  

  23. dataProvider="{statesService.getCountries.lastResult}" change="changeHandler(event)" />  

  24. <mx:ComboBox dataProvider="{statesService.getStates.lastResult}" />  

  25. </mx:VBox>  

  26. </mx:Application>  
posted on 2010-05-11 11:24  念时  阅读(686)  评论(0编辑  收藏  举报

细节决定成败!态度决定一切!