Flex Gumbo中如何创建用bitmap来填充背景色List的例子
By Minidxer | August 23, 2009
接下来的例子演示了Flex Gumbo中如何通过BitmapFill对象和自定义renderer,创建用bitmap来填充背景色List。
下面是完整代码(或点击这里察看):
下面是main.mxml:
- <?xml version="1.0" encoding="utf-8"?>
- <s:Application name="Spark_List_background_BitmapFill_test"
- xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:s="library://ns.adobe.com/flex/spark"
- xmlns:mx="library://ns.adobe.com/flex/halo">
- <s:List id="list"
- skinClass="skins.CustomListSkin"
- horizontalCenter="0"
- verticalCenter="0">
- <s:dataProvider>
- <s:ArrayList>
- <fx:String>The</fx:String>
- <fx:String>Quick</fx:String>
- <fx:String>Brown</fx:String>
- <fx:String>Fox</fx:String>
- <fx:String>Jumps</fx:String>
- <fx:String>Over</fx:String>
- <fx:String>The</fx:String>
- <fx:String>Lazy</fx:String>
- <fx:String>Dog</fx:String>
- </s:ArrayList>
- </s:dataProvider>
- </s:List>
- </s:Application>
下面是skins/CustomListSkin.mxml代码:
- <?xml version="1.0" encoding="utf-8"?>
- <s:SparkSkin name="CustomListSkin"
- xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:s="library://ns.adobe.com/flex/spark"
- minWidth="112" minHeight="112"
- alpha.disabled="0.5"
- blendMode="normal">
- <!-- states -->
- <s:states>
- <s:State name="normal" />
- <s:State name="disabled" />
- </s:states>
- <fx:Metadata>
- <![CDATA[
- [HostComponent("spark.components.List")]
- ]]>
- </fx:Metadata>
- <fx:Script>
- /* Define the skin elements that should not be colorized.
- For list, the skin itself is colorized but the individual parts are not. */
- static private const exclusions:Array = ["scroller", "background"];
- override public function get colorizeExclusions():Array {return exclusions;}
- /* Define the content fill items that should be colored by the "contentBackgroundColor" style. */
- static private const contentFill:Array = [];
- override public function get contentItems():Array {return contentFill};
- </fx:Script>
- <!-- border -->
- <s:Rect left="0" right="0" top="0" bottom="0">
- <s:stroke>
- <s:SolidColorStroke color="0x686868" weight="1"/>
- </s:stroke>
- </s:Rect>
- <!-- fill -->
- <!--- Defines the background appearance of the list-based component. -->
- <s:Rect id="background" left="1" right="1" top="1" bottom="1" >
- <s:fill>
- <s:BitmapFill id="bgFill"
- source="@Embed('assets/fx_appicon-tn.gif')" />
- </s:fill>
- </s:Rect>
- <!--- The Scroller component to add scroll bars to the list. -->
- <s:Scroller id="scroller"
- left="0" top="0" right="0" bottom="0"
- minViewportInset="1"
- focusEnabled="false">
- <!--- The container for the data items. -->
- <s:DataGroup id="dataGroup" itemRenderer="skins.CustomDefaultItemRenderer">
- <s:layout>
- <s:VerticalLayout gap="0" horizontalAlign="contentJustify" requestedRowCount="5" />
- </s:layout>
- </s:DataGroup>
- </s:Scroller>
- </s:SparkSkin>
下面是skins/CustomDefaultItemRenderer.mxml代码:
- <?xml version="1.0" encoding="utf-8"?>
- <s:ItemRenderer name="CustomDefaultItemRenderer"
- xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:s="library://ns.adobe.com/flex/spark"
- focusEnabled="false">
- <!-- states -->
- <s:states>
- <s:State name="normal" />
- <s:State name="hovered" />
- <s:State name="selected" />
- <s:State name="normalAndShowsCaret"/>
- <s:State name="hoveredAndShowsCaret"/>
- <s:State name="selectedAndShowsCaret"/>
- </s:states>
- <fx:Script>
- <![CDATA[
- override public function set label(value:String):void {
- super.label = value;
- labelDisplay.text = label;
- }
- ]]>
- </fx:Script>
- <s:Rect left="0" right="0" top="0" bottom="0">
- <s:stroke.normalAndShowsCaret>
- <s:SolidColorStroke color="{selectionColor}"
- weight="1"/>
- </s:stroke.normalAndShowsCaret>
- <s:stroke.hoveredAndShowsCaret>
- <s:SolidColorStroke color="{selectionColor}"
- weight="1"/>
- </s:stroke.hoveredAndShowsCaret>
- <s:stroke.selectedAndShowsCaret>
- <s:SolidColorStroke color="{selectionColor}"
- weight="1"/>
- </s:stroke.selectedAndShowsCaret>
- <s:fill>
- <s:SolidColor color.normal="{contentBackgroundColor}"
- color.normalAndShowsCaret="{contentBackgroundColor}"
- color.hovered="{rollOverColor}"
- color.hoveredAndShowsCaret="{rollOverColor}"
- color.selected="{selectionColor}"
- color.selectedAndShowsCaret="{selectionColor}"
- alpha="0.5"/>
- </s:fill>
- </s:Rect>
- <s:SimpleText id="labelDisplay"
- verticalCenter="0"
- left="3" right="3" top="6" bottom="4"/>
- </s:ItemRenderer>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子
Topics:
Gumbo, List |
No Comments » |
Tags: Gumbo, itemRenderer, skinClass