Flex中通过describeType事件以及XMLListCollection获取TextArea控件所有属性的例子
By Minidxer | August 6, 2008
接下来的例子演示了Flex中如何通过describeType事件以及XMLListCollection,获取TextArea控件所有属性。
让我们先来看一下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"
- creationComplete="init();">
- <mx:Script>
- private var xmlDebug:XML;
- private function init():void {
- xmlDebug = describeType(targetObj);
- xmlListColl.source = xmlDebug.accessor.(@declaredBy == xmlDebug.@name);
- }
- private function labelFunc(item:Object, col:DataGridColumn):String {
- var value:Object = targetObj[item.@name];
- if (value == null) {
- return "(null)";
- }
- return value.toString();
- }
- </mx:Script>
- <mx:XMLListCollection id="xmlListColl">
- <mx:sort>
- <mx:Sort>
- <mx:fields>
- <mx:SortField name="@name" />
- </mx:fields>
- </mx:Sort>
- </mx:sort>
- </mx:XMLListCollection>
- <mx:VDividedBox width="100%" height="100%">
- <mx:TextArea id="targetObj"
- resize="init();" />
- <mx:DataGrid id="dataGrid"
- dataProvider="{xmlListColl}"
- color="black"
- width="100%"
- height="100%">
- <mx:columns>
- <mx:DataGridColumn dataField="@access"
- itemRenderer="RedLabel" />
- <mx:DataGridColumn dataField="@name" />
- <mx:DataGridColumn labelFunction="labelFunc"
- headerText="value" />
- </mx:columns>
- </mx:DataGrid>
- </mx:VDividedBox>
- </mx:Application>
接下来是RedLabel.mxml代码:
Download: RedLabel.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Label xmlns:mx="http://www.adobe.com/2006/mxml" color="{(data.@access == 'readonly') ? 0xFF0000 : 0x000000}" />
代码:Peter deHaan 翻译/整理/编译:中文Flex例子
Topics:
Flex |
Tags: describeType(), E4X, sort, SortField, TextArea, XMLListCollection