首頁»Flash»Flex與后臺交互的幾種方法詳解

                    Flex與后臺交互的幾種方法詳解

                    來源:Web開發者 發布時間:2012-02-29 閱讀次數:

                    1.FlashVars(單向傳遞)

                    A.傳遞:在<embed 中設置 FlashVars=”name1=value1&name2=value2”
                    B.接受:在as中寫入 var value1=application.parameters.name1 即可

                    2.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> 
                    

                    3.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> 
                    

                    4.WebService方法1

                    <?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> 
                    

                    5.WebService方法2

                    <?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>

                     

                    QQ群:WEB開發者官方群(515171538),驗證消息:10000
                    微信群:加小編微信 849023636 邀請您加入,驗證消息:10000
                    提示:更多精彩內容關注微信公眾號:全棧開發者中心(fsder-com)
                    網友評論(共3條評論) 正在載入評論......
                    理智評論文明上網,拒絕惡意謾罵 發表評論 / 共3條評論
                    登錄會員中心
                    福彩试机号今天