Flex中创建一个简单的样式浏览器的例子
By Minidxer | September 14, 2008
在前面的Flex中通过调用StyleManager类的静态属性selectors显示当前selectors列表的例子中 ,我们了解了Flex中如何通过调用StyleManager类的静态属性,selectors显示当前selectors列表。接下来的例子演示了我们如何在Flex中创建一个简单的样式浏览器。
让我们先来看一下Demo(可以右键View Source或点击这里察看源代码):
下面是完整代码(或点击这里察看):
Download: main.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="horizontal"
- verticalAlign="middle"
- backgroundColor="white"
- creationComplete="init()">
- <mx:Script>
- <![CDATA[
- import mx.styles.StyleManager;
- import mx.controls.ComboBox;
- private function init():void {
- arr = StyleManager.selectors;
- arr.sort(Array.CASEINSENSITIVE);
- }
- private function list_change(evt:Event):void {
- var styleName:String = String(ComboBox(evt.currentTarget).selectedItem);
- var cssStyle:CSSStyleDeclaration = StyleManager.getStyleDeclaration(styleName);
- var obj:Object = new cssStyle.defaultFactory();
- var styles:Array = [];
- var key:String;
- for (key in obj) {
- styles.push({key:key, value:obj[key]});
- }
- styles.sortOn("key", Array.CASEINSENSITIVE);
- dataGrid.dataProvider = styles;
- }
- ]]>
- </mx:Script>
- <mx:Array id="arr" />
- <mx:ApplicationControlBar dock="true">
- <mx:Label text="selectors:" />
- <mx:ComboBox id="comboBox"
- prompt="Please select a style..."
- dataProvider="{arr}"
- width="250"
- change="list_change(event)" />
- </mx:ApplicationControlBar>
- <mx:DataGrid id="dataGrid"
- rowHeight="22"
- width="300"
- verticalScrollPolicy="on">
- <mx:columns>
- <mx:DataGridColumn dataField="key"
- headerText="Style:"
- itemRenderer="mx.controls.Label" />
- <mx:DataGridColumn dataField="value"
- headerText="Value:"
- itemRenderer="mx.controls.Label" />
- </mx:columns>
- </mx:DataGrid>
- </mx:Application>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子
Topics:
Flex |
Tags: CSSStyleDeclaration, defaultFactory(), getStyleDeclaration, selectors, StyleManager