首頁»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條評論
登錄會員中心
大发国际网址 资中县| 盐城市| 西峡县| 贵德县| 湄潭县| 敦煌市| 长乐市| 安化县| 六盘水市| 房山区| 香格里拉县| 玉树县| 华池县| 诏安县| 广河县| 奉贤区| 筠连县| 库尔勒市| 苍梧县| 西充县| 丽水市| 兴城市| 新疆| 阿克| 赤城县| 屏南县| 呼图壁县| 邳州市| 招远市| 平顺县| 瑞安市| 西安市| 屯留县| 孝义市| 昭苏县| 通山县| 嫩江县| 大同市| 子洲县| 保靖县| 乐安县| 前郭尔| 武定县| 峨山| 中牟县| 东光县| 宜阳县| 鄱阳县| 阿荣旗| 夹江县| 兴业县| 正安县| 富裕县| 万源市| 疏勒县| 太湖县| 那曲县| 乐清市| 盱眙县| 安仁县| 微博| 峡江县| 沁阳市| 神农架林区| 曲阳县| 二连浩特市| 泾阳县| 阿鲁科尔沁旗| 盐边县| 江北区| 鄂托克旗| 七台河市| 临沧市| 玉山县| 锦屏县| 绥中县| 洮南市| 阿瓦提县| 桐柏县| 丽水市| 封丘县| 凤庆县| 嵩明县| 仪征市| 沂南县| 灵宝市| 凉城县| 文山县| 满洲里市| 墨竹工卡县| 靖宇县| 余干县| 星座| 修水县| 昭通市| 新密市| 抚顺县| 新干县| 正镶白旗| 上林县| 凉山| 库尔勒市| 商水县| 明水县| 江达县| 盖州市| 收藏| 辛集市| 运城市| 贡嘎县| 洛南县| 绥中县| 汾西县| 胶州市| 太和县| 云和县| 荣成市| 明光市| 买车| 宁津县| 离岛区| 临泉县| 上栗县| 武邑县| 寿光市| 梁平县| 广州市| 彭水| 年辖:市辖区| 长沙县| 南丹县| 宿迁市| 万盛区| 盱眙县| 宁德市| 乐山市| 都江堰市|