Mar 31
在前面的利用Flex的TileList控件创建一个简单的图片展示(相册)的例子和利用Flex的HorizontalList控件创建一个简单的图片展示(相册)中,我们了解了如何利用TileList和HorizontalList创建简单的图片展示相册。
接下来的例子演示了如何利用HTTPService标签动态的读取XML文件,从而使你可以根据XML文件动态的导入不同的相册内容进行展示。
让我们先来看一下Demo(可以右键View Source或点击这里察看源代码):
下面是完整代码(或点击这里察看):
Download: main.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="vertical"
- verticalAlign="middle"
- backgroundColor="white">
- <mx:Script>
- <![CDATA[
- import mx.rpc.events.ResultEvent;
- import mx.rpc.events.FaultEvent;
- import mx.controls.Alert;
- private var alert:Alert;
- private function loadGallery(src:String):void {
- httpService.url = src;
- httpService.send();
- }
- private function httpService_fault(evt:FaultEvent):void {
- var title:String = evt.type + " (" + evt.fault.faultCode + ")";
- var text:String = evt.fault.faultString;
- alert = Alert.show(text, title);
- xmlListColl.removeAll();
- }
- private function httpService_result(evt:ResultEvent):void {
- var xmlList:XMLList = XML(evt.result).images.image;
- xmlListColl = new XMLListCollection(xmlList);
- }
- ]]>
- </mx:Script>
- <mx:XMLListCollection id="xmlListColl" />
- <mx:HTTPService id="httpService"
- resultFormat="e4x"
- fault="httpService_fault(event);"
- result="httpService_result(event)" />
- <mx:ApplicationControlBar dock="true">
- <mx:Button label="gallery 1"
- click="loadGallery('gallery1.xml');" />
- <mx:Button label="gallery 2"
- click="loadGallery('gallery2.xml');" />
- <mx:Button label="gallery 404"
- click="loadGallery('gallery404.xml');" />
- </mx:ApplicationControlBar>
- <mx:TileList id="tileList"
- dataProvider="{xmlListColl}"
- itemRenderer="TileListItemRenderer"
- columnCount="3"
- columnWidth="150"
- rowCount="2"
- rowHeight="100" />
- </mx:Application>
Download: TileListItemRenderer.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml">
- <mx:Image source="{data.@src}"
- horizontalCenter="0"
- verticalCenter="0" />
- <mx:Label text="{data.@lbl}"
- fontWeight="bold"
- horizontalCenter="0"
- bottom="0" />
- </mx:Canvas>
代码:Peter deHaan 翻译:minidxer
