Flex与后台交互的4种方法 URLLoader、HTTPService、WebService、RemoteObject使用示例

来源:互联网 发布:网络连接769什么意思 编辑:程序博客网 时间:2024/06/05 03:38

Flex与后台交互的4种方法 URLLoader、HTTPService、WebService、RemoteObject使用示例 


URLLoader 

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initializeHandler(event)"> 
<mx:Script> 
<![CDATA[ 
private var _countriesService:URLLoader; 
private var _statesService:URLLoader; 
private var _countriesRequest:URLRequest = new URLRequest("http://www.rightactionscript.com/states/xml/countries.xml") 
private var _statesRequest:URLRequest = new URLRequest("http://www.rightactionscript.com/states/xml/states.php"); 
private var _parameters:URLVariables = new URLVariables(); 
private function initializeHandler(event:Event):void { 
_countriesService = new URLLoader(); 
_countriesService.addEventListener(Event.COMPLETE, countriesCompleteHandler); 
_countriesService.load(_countriesRequest); 

_statesService = new URLLoader(); 
_statesService.addEventListener(Event.COMPLETE, statesCompleteHandler); 

XML.ignoreWhitespace = true; 

private function countriesCompleteHandler(event:Event):void { 
var xml:XML = new XML(_countriesService.data); 
country.dataProvider = xml.children(); 

private function statesCompleteHandler(event:Event):void { 
var xml:XML = new XML(_statesService.data); 
state.dataProvider = xml.children(); 

private function changeHandler(event:Event):void { 
_parameters.country = country.value; 
_statesRequest.data = _parameters; 
_statesService.load(_statesRequest); 

]]> 
</mx:Script> 
<mx:VBox> 
<mx:ComboBox id="country" change="changeHandler(event)" /> 
<mx:ComboBox id="state" /> 
</mx:VBox> 
</mx:Application> 



HTTPService 

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initializeHandler(event)"> 
<mx:Script> 
<![CDATA[ 
private function initializeHandler(event:Event):void { 
countriesService.send(); 

private function changeHandler(event:Event):void { 
statesService.send(); 

]]> 
</mx:Script> 
<!-- 载入纯静态的xml数据 --> 
<mx:HTTPService id="countriesService" url="http://www.rightactionscript.com/states/xml/countries.xml" /> 
<!-- 载入由php生成的xml数据 --> 
<mx:HTTPService id="statesService" url="http://www.rightactionscript.com/states/xml/states.php"> 
<!-- 以下标签就是要发送到服务端的数据了,可以这样理解:有一个名为country的变量,它的值为花括号{}里的内容 --> 
<mx:request> 
<country>{country.value}</country> 
</mx:request> 
</mx:HTTPService> 
<mx:VBox> 
<!-- 此控件的数据由第一个<mx:HTTPService/>控件接收的内容提供,并且由这个ComboBox控制着第二个ComboBox所要显示的内容 --> 
<mx:ComboBox id="country" dataProvider="{countriesService.lastResult.countries.country}" 
change="changeHandler(event)" /> 
<!-- 下面的ComboBox已经绑定了{statesService.lastResult.states.state},随它的数据改变而改变 --> 
<mx:ComboBox dataProvider="{statesService.lastResult.states.state}" /> 
</mx:VBox> 
</mx:Application> 



WebService 

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="initializeHandler(event)"> 
<mx:Script> 
<![CDATA[ 
private function initializeHandler(event:Event):void { 
statesService.getCountries(); 

private function changeHandler(event:Event):void { 
statesService.getStates(country.value); 

]]> 
</mx:Script> 
<mx:WebService id="statesService" 
wsdl="http://www.rightactionscript.com/states/webservice/StatesService.php?wsdl"> 
<mx:operation name="getCountries" /> 
<mx:operation name="getStates" /> 
</mx:WebService> 
<mx:VBox> 
<mx:ComboBox id="country" 
dataProvider="{statesService.getCountries.lastResult}" change="changeHandler(event)" /> 
<mx:ComboBox dataProvider="{statesService.getStates.lastResult}" /> 
</mx:VBox> 
</mx:Application>
原创粉丝点击