Flex与后台交互的4种方法 HTTPService、URLLoader、WebService详解

Flex与后台交互的4种方法 HTTPService、URLLoader、WebService详解

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>
[折叠代码]

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 function initializeHandler(event:Event): void { _countriesService = new URLLoader(); _countriesService.addEventListener(Event.COMPLETE, countriesCompleteHandler); _countriesService.load( new URLRequest( "http://www.rightactionscript.com/states/xml/countries.xml" )); _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 { var request:URLRequest = new URLRequest( "http://www.rightactionscript.com/states/xml/states.php" ); var parameters:URLVariables = new URLVariables(); parameters.country = country.value; request.data = parameters; _statesService.load(request); } ]]> </mx:Script> <mx:VBox> <mx:ComboBox id=" country " change="changeHandler(event)" /> <mx:ComboBox id=" 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>
[折叠代码]

 

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.send( ); } private function changeHandler(event:Event): void { statesService.getStates.send( ); } ]]> </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:request> <country> {country.value} </country> </mx:request> </mx:operation> </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
[折叠代码]

FlashVars(单向传递)

  • A.传递:在<embed 中设置 FlashVars=”name1=value1&name2=value2”
  • B.接受:在as中写入 var value1=application.parameters.name1 即可
分类: Flex
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值