Flex中如何利用树形控件(Tree Control)和SWFLoader控件创建简单图片相册的例子

在 利用Flex的HorizontalList控件创建一个简单的图片展示(相册)中我们了解了如何利用HorizontalList创建相册,接下来的例子演示了如何利用树形控件(Tree Control)和SWFLoader控件创建一个简单图片相册。
让我们先来看一下Demo(可以右键View Source或 点击这里察看源代码 ):
Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  3.         layout="vertical"
  4.         verticalAlign="middle"
  5.         backgroundColor="white">
  6.     <mx:Script>
  7.         <![CDATA[
  8.             import mx.events.ListEvent;
  9.             private function tree_itemClick(evt:ListEvent):void {
  10.                 var t:Tree = evt.currentTarget as Tree;
  11.                 var dataObj:Object = evt.itemRenderer.data;
  12.                 if (dataObj.hasOwnProperty("@src")) {
  13.                     swfLoader.source = dataObj.@src;
  14.                 } else if (t.dataDescriptor.isBranch(t.selectedItem)) {
  15.                     swfLoader.source = null;
  16.                     panel.status = "";
  17.                 }
  18.             }
  19.             private function tree_labelFunc(item:Object):String {
  20.                 var suffix:String = "";
  21.                 if (tree.dataDescriptor.isBranch(item)) {
  22.                     suffix = " (" + item.children().length() + ")";
  23.                 }
  24.                 return item.@label + suffix;
  25.             }
  26.             private function swfLoader_complete(evt:Event):void {
  27.                 panel.status = (swfLoader.bytesTotal/1024).toFixed(2) + 'KB';
  28.             }
  29.         ]]>
  30.     </mx:Script>
  31.     <mx:XML id="dp" source="data/dp.xml" />
  32.     <mx:HDividedBox width="100%" height="100%">
  33.         <mx:Panel width="200" height="100%">
  34.             <mx:Tree id="tree"
  35.                     dataProvider="{dp}"
  36.                     labelFunction="tree_labelFunc"
  37.                     showRoot="false"
  38.                     width="100%"
  39.                     height="100%"
  40.                     itemClick="tree_itemClick(event);" />
  41.         </mx:Panel>
  42.         <mx:Panel id="panel"
  43.                 width="100%"
  44.                 height="100%"
  45.                 backgroundColor="white">
  46.             <mx:SWFLoader id="swfLoader"
  47.                     scaleContent="true"
  48.                     width="100%"
  49.                     height="100%"
  50.                     complete="swfLoader_complete(event);" />
  51.             <mx:ControlBar>
  52.                 <mx:LinkButton label="{swfLoader.source.toString()}" />
  53.             </mx:ControlBar>
  54.         </mx:Panel>
  55.     </mx:HDividedBox>
  56. </mx:Application>
Download: dp.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <root>
  3.     <gallery label="RIA">
  4.         <file label="ColdFusion" src="assets/cf_appicon.jpg" />
  5.         <file label="Dreamweaver" src="assets/dw_appicon.jpg" />
  6.         <file label="Flash" src="assets/fl_appicon.jpg" />
  7.         <file label="Flash Player" src="assets/fl_player_appicon.jpg" />
  8.         <file label="Flex" src="assets/fx_appicon.jpg" />
  9.     </gallery>
  10. </root>

你可能感兴趣的:(职场,休闲)