Flex中如何利用树形控件(Tree Control)和SWFLoader控件创建简单图片相册的例子
By Minidxer | April 5, 2008
在利用Flex的HorizontalList控件创建一个简单的图片展示(相册)中我们了解了如何利用HorizontalList创建相册,接下来的例子演示了如何利用树形控件(Tree Control)和SWFLoader控件创建一个简单图片相册。
让我们先来看一下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.events.ListEvent;
- private function tree_itemClick(evt:ListEvent):void {
- var t:Tree = evt.currentTarget as Tree;
- var dataObj:Object = evt.itemRenderer.data;
- if (dataObj.hasOwnProperty("@src")) {
- swfLoader.source = dataObj.@src;
- } else if (t.dataDescriptor.isBranch(t.selectedItem)) {
- swfLoader.source = null;
- panel.status = "";
- }
- }
- private function tree_labelFunc(item:Object):String {
- var suffix:String = "";
- if (tree.dataDescriptor.isBranch(item)) {
- suffix = " (" + item.children().length() + ")";
- }
- return item.@label + suffix;
- }
- private function swfLoader_complete(evt:Event):void {
- panel.status = (swfLoader.bytesTotal/1024).toFixed(2) + 'KB';
- }
- ]]>
- </mx:Script>
- <mx:XML id="dp" source="data/dp.xml" />
- <mx:HDividedBox width="100%" height="100%">
- <mx:Panel width="200" height="100%">
- <mx:Tree id="tree"
- dataProvider="{dp}"
- labelFunction="tree_labelFunc"
- showRoot="false"
- width="100%"
- height="100%"
- itemClick="tree_itemClick(event);" />
- </mx:Panel>
- <mx:Panel id="panel"
- width="100%"
- height="100%"
- backgroundColor="white">
- <mx:SWFLoader id="swfLoader"
- scaleContent="true"
- width="100%"
- height="100%"
- complete="swfLoader_complete(event);" />
- <mx:ControlBar>
- <mx:LinkButton label="{swfLoader.source.toString()}" />
- </mx:ControlBar>
- </mx:Panel>
- </mx:HDividedBox>
- </mx:Application>
Download: dp.xml
- <?xml version="1.0" encoding="utf-8"?>
- <root>
- <gallery label="RIA">
- <file label="ColdFusion" src="assets/cf_appicon.jpg" />
- <file label="Dreamweaver" src="assets/dw_appicon.jpg" />
- <file label="Flash" src="assets/fl_appicon.jpg" />
- <file label="Flash Player" src="assets/fl_player_appicon.jpg" />
- <file label="Flex" src="assets/fx_appicon.jpg" />
- </gallery>
- </root>
代码:Peter deHaan 翻译/整理/编译:minidxer
Topics:
Flex |
Tags: dataDescriptor, Flex, hasownproperty, isbranch, itemRenderer, SWFLoader, Tree.