flex DataGroup

示例1:

<?xml version="1.0" encoding="utf-8"?>
<s:DataGroup xmlns:fx="http://ns.adobe.com/mxml/2009"
             xmlns:s="library://ns.adobe.com/flex/spark"
             xmlns:mx="library://ns.adobe.com/flex/mx"
             width="200" height="100%"  dataProvider="{dataArr}" creationComplete="datagroup1_creationCompleteHandler(event)">
        <s:layout>
            <s:VerticalLayout gap="1" useVirtualLayout="true" paddingLeft="2" paddingRight="2" />
        </s:layout>
        <fx:Script>
            <![CDATA[
                import mx.collections.ArrayCollection;
                import mx.events.FlexEvent;
                [Bindable]
                public var dataArr:ArrayCollection

                protected function datagroup1_creationCompleteHandler(event:FlexEvent):void
                {
                    // TODO Auto-generated method stub

                }

            ]]>
        </fx:Script>
        <s:itemRenderer>
            <fx:Component>
                <s:ItemRenderer width="195" height="30" click="itemrenderer1_clickHandler(event)" dataChange="itemrenderer1_dataChangeHandler(event)" >

                    <fx:Script>
                        <![CDATA[
                            import com.AppEvent;

                            import mx.events.FlexEvent;
                            [Bindable]
                            private var tempdata:Object;

                            protected function itemrenderer1_clickHandler(event:MouseEvent):void
                            {
                                AppEvent.dispatch("menu_selected",data);
                                for each(var o:Object in outerDocument.dataArr)
                                {
                                    o.selected=false;
                                }
                                data.selected=true;
                                outerDocument.dataArr.refresh();
                            }

                            protected function itemrenderer1_dataChangeHandler(event:FlexEvent):void
                            {
                                //tempdata=data;
                            }

                        ]]>
                    </fx:Script>

                    <s:states>
                        <s:State name="normal" />
                        <s:State name="hovered" />
                        <s:State name="selected" />
                    </s:states>

                    <s:Rect left="0" right="0" top="0" bottom="0" radiusX="5" radiusY="5"  visible="{!data.selected}">
                        <s:fill>
                            <s:SolidColor color="#92CDEA" color.hovered="#65A3FF" alpha="0.9" alpha.hovered="1"  />
                        </s:fill>
                    </s:Rect>
                    <s:Rect left="0" right="0" top="0" bottom="0" radiusX="5" radiusY="5"  visible="{data.selected}">
                        <s:fill>
                            <s:SolidColor color="#65A3FF" />
                        </s:fill>
                    </s:Rect>
                    <s:Label id="txtStart" text="{data.label}"  buttonMode="true" useHandCursor="true"
                             fontSize="16" color="#FFFFFF"  fontFamily="微软雅黑" left="20" verticalCenter="2" />
                </s:ItemRenderer>
            </fx:Component>
        </s:itemRenderer>
</s:DataGroup>

注意:

<s:ItemRenderer width="195" height="30" autoDrawBackground="false"  这里如果给了宽度和高度那么,每一项就固定死了,如果不给就是活的。

示例2:

<?xml version="1.0" encoding="utf-8"?>
<s:DataGroup xmlns:fx="http://ns.adobe.com/mxml/2009"
             xmlns:s="library://ns.adobe.com/flex/spark"
             xmlns:mx="library://ns.adobe.com/flex/mx"
             width="100%" height="100%"  dataProvider="{dataArr}" creationComplete="datagroup1_creationCompleteHandler(event)">
    <s:layout>
        <s:TileLayout  verticalGap="20" horizontalGap="20" horizontalAlign="left" paddingLeft="20" paddingTop="6"/>
    </s:layout>
        <fx:Script>
            <![CDATA[
                import mx.collections.ArrayCollection;
                import mx.events.FlexEvent;
                [Bindable]
                public var dataArr:ArrayCollection

                protected function datagroup1_creationCompleteHandler(event:FlexEvent):void
                {
                    // TODO Auto-generated method stub

                }

            ]]>
        </fx:Script>
        <s:itemRenderer>
            <fx:Component>
                <s:ItemRenderer  autoDrawBackground="false" click="itemrenderer1_clickHandler(event)" dataChange="itemrenderer1_dataChangeHandler(event)" >

                    <fx:Script>
                        <![CDATA[
                            import com.esri.viewer.AppEvent;

                            import mx.events.FlexEvent;
                            [Bindable]
                            private var tempdata:Object;

                            protected function itemrenderer1_clickHandler(event:MouseEvent):void
                            {
                                AppEvent.dispatch("xzq2_selected",data);
                                for each(var o:Object in outerDocument.dataArr)
                                {
                                    o.selected=false;
                                }
                                data.selected=true;
                                outerDocument.dataArr.refresh();
                            }

                            protected function itemrenderer1_dataChangeHandler(event:FlexEvent):void
                            {
                                //tempdata=data;
                            }

                        ]]>
                    </fx:Script>

                    <s:states>
                        <s:State name="normal" />
                        <s:State name="hovered" />
                        <s:State name="selected" />
                    </s:states>

                    <s:Rect id="hoveredBorder" left="-4" right="-4" top="-6" bottom="-4" radiusX="2" radiusY="2" includeIn="hovered">
                        <s:stroke>
                            <s:LinearGradientStroke rotation="90">
                                <s:GradientEntry  color="#53C500" ratio="0" />
                                <s:GradientEntry  color="#52b0e8" ratio="1" />
                            </s:LinearGradientStroke>
                        </s:stroke>
                        <s:fill>
                            <s:SolidColor color="#65A3CE" alpha="0.1"/>
                        </s:fill>
                    </s:Rect>

                    <s:Rect id="SelectedBorder" left="-4" right="-4" top="-6" bottom="-4" radiusX="2" radiusY="2" visible="{data.selected}">
                        <s:stroke>
                            <s:LinearGradientStroke rotation="90">
                                <s:GradientEntry  color="#53C500" ratio="0" />
                                <s:GradientEntry  color="#52b0e8" ratio="1" />
                            </s:LinearGradientStroke>
                        </s:stroke>
                        <s:fill>
                            <s:SolidColor color="#65A3CE" alpha="0.1"/>
                        </s:fill>
                    </s:Rect>
                    <s:Label text="{data.name}" verticalCenter="0" horizontalCenter="0"
                             maxDisplayedLines="1" toolTip="{data.label}"  fontFamily="微软雅黑"
                             fontSize="14" buttonMode="true" color="0x348D9B"/>
                </s:ItemRenderer>
            </fx:Component>
        </s:itemRenderer>
</s:DataGroup>

注意:

如果要滚动条那么要这样:

<s:Scroller width="290" height="150" left="10">
                    <HeaderController:xzqTiledDataGroup left="10" dataArr="{dataArr2}" width="290" height="150"/>
                </s:Scroller>
时间: 2024-07-29 19:31:23

flex DataGroup的相关文章

Flex元素布局规则总结,以及布局和容器

一.Flex中的元素分类从功能层面可以把Flex中的元素分为组件(Components)和容器(Containers)两大类:组件 - 是指那类具有明确交互或数据展示功能的元素,例如Button.Checkbox.Datagrid.List等.容器 - 是指那类用来放置其他元素的元素,容器往往不具有特定的交互功能,主要的功能就是容纳元素.容器再细分又可以分为布局(Layout)容器和导航(Navigator)容器,其中布局容器的功能就是用来布局界面元素的,例如Application.Panel等

Flex 与Stage3D 的备忘录

Flex的List组件的ItemRender的一些属性 1.userList.dataGroup.getChildAt(i) as ItemRenderer //List访问ItemRenderer(不符合MVC分离,不建议使用) 2.userList.dataGroup.numChildren //List内的ItemRendere个数 3.itemRenderer.owner //ItemRenderer访问提供data的父组件 FlashBuilder建立ActionScript项目并使用

Flex4 vs Flex3: Repeater vs DataGroup

repeaters太老土了!如果你过去使用过它,你会发出这种感概.现在,我们终于要摆脱它了.Repeaters不仅有沉重的组件,而且接合使用很不方便.那么,Flex 4中有什么可以帮助我们吗?DataGroups!下面的例子都会用到这个数据: userData = new ArrayCollection(); userData.addItem({"fname":"Rich","lname":"Tretola"}); userD

css3 flex盒子布局

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ margin: 0; padding: 0; } .nav{ display: -webkit-flex; background-color: lightgreen; height: 100px

flex布局

一.Flex布局是什么? Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为Flex布局. .box{ display: flex; } 行内元素也可以使用Flex布局. .box{ display: inline-flex; } Webkit内核的浏览器,必须加上-webkit前缀. .box{ display: -webkit-flex; /* Safari */ display: flex; } 注意,设为Fle

Flex 实现表格布局 (微信小程序)

微信小程序自己开发了一套 wxml + wxss,对许多 HTML 标签和 CSS 属性不支持. 不支持 table 标签,推荐使用 flex 布局. 自然而然的想法:flex 嵌套,效果还不错,贴代码如下: <view id="panel" class="flex-column"> <view class="flex-cell flex-row"> <text class="flex-cell flex-

FLEX布局的一些问题和解决方法

前言 露珠最近研究了一下flex的布局方式,发现项w3c推出的这套布局解决方案对于日益复杂的前端开发布局来说是确实是一利器,并且在不同的屏幕上实现了真正的响应式布局:不再单纯地依赖百分比和float的强拼硬凑来达到设计需求,在各个屏幕上显示效果友好,弹性的伸缩元素,简洁易维护的代码.只可惜,这位老兄有一位致命的缺点----除了chrome外几乎所有手机上浏览器都没有兼容它!!,或者支持程度大不一样!这样开发人员头疼的问题就来了,刚刚在手机上忽略掉IE这个强盗的兼容问题,又来一个?!.flex的优

弹性盒模型flex

弹性盒子模型 布局方案 传统的布局方案大多采用div+css+float+position+display来实现,但是随着css3中弹性盒子模型的推出,在前端布局方案中就又多出了一项彪悍的选项.而因为最近在研究小程序,发现中间使用弹性盒子布局效果更好效率更高一点,所以就将之前学习弹性盒模型的相关知识点整理出来,给大家分享. 弹性盒模型flex布局介绍 弹性盒模型(flexbox)又称为弹性布局,是css3中新提出的一种布局方式,通过弹性布局,可以让子元素自动调整宽度和高度,从而达到很好的填充任何

CSS3布局之flex布局效果

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> *{ margin: 0; padding: 0; } .container{ width: 1000px; margin:0 auto; } he