flex自定义list展示成表格的样式,增加单击事件:下面是截图
1.主flex页面
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:supportClasses="com.esri.ags.skins.supportClasses.*" minWidth="955" minHeight="600" xmlns:List="components.List.*" creationComplete="application1_creationCompleteHandler(event)" > <s:layout> <supportClasses:AttachmentLayout/> </s:layout> <fx:Script> <![CDATA[ import events.ListClickEvent; import mx.collections.ArrayCollection; import mx.events.FlexEvent; [Bindable] public var linename:String; [Bindable] private var valueAC:ArrayCollection = new ArrayCollection( [ { hour: "1", value: 1500 }, { hour: "2", value: 200 }, { hour: "3", value: 500 }, { hour: "4", value: 1200 }, { hour: "5", value: 575 } ]); [Bindable] private var valueAC2:ArrayCollection = new ArrayCollection( [ { hour: "1", value: 1000 }, { hour: "2", value: 300 }, { hour: "3", value: 700 }, { hour: "4", value: 1200 }, { hour: "5", value: 500 } ]); protected function mylist1_listItemClickHandler(event:ListClickEvent):void { trace(event.lablepinyi); var lablepinyi:String=event.lablepinyi; if(lablepinyi=="cuijiang" || lablepinyi=="yutan" ) { linechart.dataProvider=valueAC; }else{ linechart.dataProvider=valueAC2; } linename=event.lablename; } protected function application1_creationCompleteHandler(event:FlexEvent):void { linename="翠江"; linechart.dataProvider=valueAC; } ]]> </fx:Script> <fx:Declarations> <mx:SolidColorStroke id = "s2" color="blue" weight="2"/> <s:ArrayList id="lylist"> <fx:Object number="1" drainagebasin="翠江" hour="13" arealRainfall="-999" level="无风险" pingyin="cuijiang"/> <fx:Object number="2" drainagebasin="万安" hour="13" arealRainfall="-999" level="低风险" pingyin="wanan"/> <fx:Object number="3" drainagebasin="渔谭" hour="13" arealRainfall="-999" level="中风险" pingyin="yutan"/> <fx:Object number="4" drainagebasin="常山" hour="13" arealRainfall="-999" level="高风险" pingyin="changshan"/> </s:ArrayList> </fx:Declarations> <s:VGroup gap="0"> <s:BorderContainer width="528" height="35" borderVisible="false" borderWeight="0" backgroundImage="@Embed('images/tableheader.png')"> <s:HGroup paddingLeft="30" verticalAlign="middle" width="100%" height="100%" > <s:Label text="各流域风险等级" color="0x0F6A95" fontSize="14" fontWeight="bold" fontFamily="宋体"/> </s:HGroup> </s:BorderContainer> <s:BorderContainer width="528" borderVisible="false"> <s:Rect id="backgroundRect" left="0" right="0" top="0" bottom="0"> <s:fill> <s:SolidColor color="0xdbdbdb" /> </s:fill> </s:Rect> <s:Rect left="1" right="1" top="0" bottom="1"> <s:fill> <s:SolidColor color="0xebecec" /> </s:fill> </s:Rect> <s:HGroup height="33" verticalAlign="middle" gap="0"> <s:Label text="" color="0x333333" width="40"/> <s:Label text="序号" color="0x333333" width="80"/> <s:Label text="流域" color="0x333333" width="100"/> <s:Label text="累积小时" color="0x333333" width="100"/> <s:Label text="降雨量" color="0x333333" width="100"/> <s:Label text="风险等级" color="0x333333" width="105"/> </s:HGroup> </s:BorderContainer> <List:MyList itemRenderer="components.List.MyListItemRenderer" listItemClick="mylist1_listItemClickHandler(event)" width="528" height="150" dataProvider="{lylist}" borderVisible="false"> </List:MyList> <s:HGroup paddingTop="5" /> <s:BorderContainer width="528" height="35" borderVisible="false" borderWeight="0" backgroundImage="@Embed('images/tableheader.png')"> <s:HGroup paddingLeft="30" verticalAlign="middle" width="100%" height="100%" > <s:Label text="{linename}流域累计降水量图" color="0x0F6A95" fontSize="14" fontWeight="bold" fontFamily="宋体"/> </s:HGroup> </s:BorderContainer> <s:Group> <s:Rect left="0" right="0" top="0" bottom="0"> <s:stroke> <s:SolidColorStroke color="0xb9b9b9" weight="1"/> </s:stroke> </s:Rect> <mx:LineChart id="linechart" height="323" width="528" paddingLeft="5" paddingRight="5" showDataTips="true" > <!--categoryField:横坐标数据节点--> <mx:horizontalAxis> <mx:CategoryAxis id="h1" categoryField="hour" title="时间(h)"/> </mx:horizontalAxis> <mx:horizontalAxisRenderers> <mx:AxisRenderer placement="bottom" axis="{h1}" /> </mx:horizontalAxisRenderers> <!--纵坐标--> <mx:verticalAxisRenderers> <mx:AxisRenderer placement="left" axis="{v1}" /> </mx:verticalAxisRenderers> <!--yField:纵坐标数据节点--> <mx:series> <!--纵坐标轴1--> <mx:LineSeries id="cs1" horizontalAxis="{h1}" form="curve" yField="value" displayName="时间(h)/降水量(MM)" lineStroke="{s2}"> <mx:verticalAxis> <mx:LinearAxis id="v1" title="降水量(MM)"/> </mx:verticalAxis> </mx:LineSeries> </mx:series> </mx:LineChart> </s:Group> </s:VGroup> </s:Application>
2.自定义的事件类,传递点击表格的内容
package events { import flash.events.Event; public class ListClickEvent extends Event { public var lablepinyi:String; public var lablename:String; public function ListClickEvent(type:String, lablepinyi:String,lablename:String ) { super(type, true); this.lablepinyi = lablepinyi; this.lablename = lablename; } override public function clone():Event { return new ListClickEvent( type, lablepinyi,lablename ); } } }
3.自定义的List类:
package components.List { import spark.components.List; [Event(name="listItemClick",type="events.ListClickEvent")] public class MyList extends List { public function MyList() { super(); } } }
4.自定义的list呈示器:
<?xml version="1.0" encoding="utf-8"?> <s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" autoDrawBackground="true"> <fx:Metadata> [Event(name="listItemClick",type="events.ListClickEvent")] </fx:Metadata> <fx:Script> <![CDATA[ import events.ListClickEvent; import mx.controls.Alert; protected function getColor(data:Object):uint { var lindex:int= Number(data.number.toString()); if(lindex%2==0){ return 0xf5f6f6; }else{ return 0xffffff; } } protected function getColorRect(data:Object):uint { var level:String= data.level.toString(); if(level=="无风险"){ return 0x008aff; }else if(level=="低风险"){ return 0xfdd868; }else if(level=="中风险"){ return 0xff861a; }else if(level=="高风险"){ return 0xff001e; }else { return 0x008aff; } } protected function bordercontainer1_clickHandler(event:MouseEvent):void { var listclickevent:ListClickEvent=new ListClickEvent("listItemClick",data.pingyin,data.drainagebasin); dispatchEvent(listclickevent); } ]]> </fx:Script> <s:BorderContainer width="528" borderVisible="false" click="bordercontainer1_clickHandler(event)"> <s:Rect id="backgroundRect" left="0" right="0" top="0" bottom="0"> <s:fill> <s:SolidColor color="0xdbdbdb" /> </s:fill> </s:Rect> <s:Rect left="1" right="1" top="0" bottom="1"> <s:fill> <s:SolidColor color="{getColor(data)}"/> </s:fill> </s:Rect> <s:HGroup height="33" verticalAlign="middle" paddingLeft="40" gap="0"> <s:Label text="{data.number}" color="0x666666" width="80"/> <s:Label text="{data.drainagebasin}" color="0x666666" width="100"/> <s:Label text="{data.hour}" color="0x666666" width="100"/> <s:Label text="{data.arealRainfall}" color="0x666666" width="100"/> <s:Rect left="0" right="0" top="0" bottom="0" width="10" height="10" > <s:stroke> <s:SolidColorStroke color="0xb9b9b9" weight="1"/> </s:stroke> <s:fill> <s:SolidColor color="{getColorRect(data)}"/> </s:fill> </s:Rect> <s:Label paddingLeft="5" text="{data.level}" color="0x666666" width="95"/> </s:HGroup> </s:BorderContainer> </s:ItemRenderer>
5.用到的图片:
完成。
相关推荐
这个"flex自定义组件事件DEMO"提供了关于如何创建和管理自定义组件事件的实际示例。下面我们将详细探讨Flex自定义组件、事件处理以及如何通过示例进行学习。 1. Flex自定义组件:Flex允许开发者通过继承现有的...
这个主题聚焦于“flex自定义控件与事件”,这是一个关键的开发概念,特别是对于那些希望深入理解Flex架构和提升应用用户体验的开发者来说。 自定义控件在Flex开发中扮演着重要角色,它们允许开发者根据项目需求创建...
自定义事件是Flex开发中的一个重要概念,允许开发者扩展内置事件系统,以满足特定项目的需要。下面将详细介绍Flex4自定义事件的用法,以及如何在一个完整的项目中导入和运行。 1. **创建自定义事件类** - 首先,...
在Flex手机项目开发中,创建自定义的List组件ItemRenderer是一项常见的需求,目的是为了提供更加丰富和个性化的显示效果。本文将深入探讨如何利用IconItemRenderer来实现这一目标,同时结合具体的实例,介绍两种不同...
在Flex中,自定义组件是开发者根据项目需求创建的特殊UI元素,可以扩展和定制标准的MX或Spark组件。本示例着重于一个名为“ImageViewer”的自定义组件,这通常是一个用于展示图像并可能包含缩放、平移等交互功能的...
5. **样式和皮肤**:Flex支持丰富的样式系统,你可以定义组件的默认样式,并允许用户通过样式表进行自定义。此外,组件还可以使用皮肤来改变其外观,皮肤可以是静态的图像,也可以是动态的组件实例。 6. **测试和...
在本文中,我们将深入探讨如何在Flex...总结来说,自定义Flex加载条是一项涉及组件样式、模板、动画和事件处理的综合工作。通过学习和实践这个示例,你可以掌握如何根据项目需求定制出独特的加载条组件,提升用户体验。
### Flex自定义ToolTip详解 在Flex开发中,`ToolTip`是一种非常实用的界面元素,用于在用户悬停或聚焦某个控件时显示额外的信息。默认情况下,Flex提供了基本的`ToolTip`功能,但有时为了满足特定的设计需求或者...
在Flex中,自定义组件和事件的使用对于创建功能丰富的用户界面至关重要。下面我们将详细探讨这两个主题。 ### 一、Flex自定义组件 #### 1. 创建自定义组件的原因 在Flex应用中,有时标准组件库提供的组件无法满足...
### Flex自定义事件详解 Flex 是一款用于构建和部署跨平台桌面应用与移动应用的开源框架,它基于Adobe Flash Platform。在Flex应用开发过程中,事件处理机制是非常重要的一个环节,而自定义事件则是这一机制中的...
在Flex开发中,高级表格(Advanced Data Grid)是Adobe Flex框架提供的一种强大的数据展示组件,它允许开发者以灵活的方式展示复杂的数据集。本教程将深入探讨如何实现表格的标题分组、列锁定以及相关的样式设置。 ...
本篇文章将深入探讨如何在Flex环境中自定义实现一个具备展开、收缩功能的多级目录树形结构。 首先,让我们理解`Flex`布局。Flex布局,全称为Flexible Box,是一种用于容器中元素的布局模型,旨在提供更好的灵活性,...
本篇文章将深入探讨如何在Flex布局中自定义创建CSS样式,以满足多样化的设计需求。 首先,我们需要理解Flex布局的基本概念。在Flex布局中,容器被称为“flex容器”,其内部的子元素称为“flex项目”。通过设置容器...
自定义的datagrid可能增加了特殊的功能,如自定义列类型、分页、可编辑单元格或高级过滤选项。 3. 树形视图(tree):树形视图常用于展示层次结构的数据,如文件系统或组织结构。自定义的tree可能提供了更好的节点...
自定义组件的前提条件通常包括对Flex SDK的熟悉,对面向对象编程的理解,以及对组件生命周期、样式和事件处理机制的掌握。 主要内容提到了一个具体的自定义组件——图片组件,它具有以下功能: 1. 创建图片组件时...
Flex布局,全称为Flexible Box布局,是一种在CSS3中引入的布局模型,旨在提供更灵活的盒状模型布局方式,尤其适合在不同屏幕尺寸和设备上展示内容。 进度条是用户界面中常见的元素,用于显示任务或过程的完成状态。...
在IT行业中,FLEX是一种基于ActionScript和Flash技术的开源框架,主要用于构建富互联网应用程序(RIA)。FLEX的用户界面通常包含丰富的交互元素,而等待图标则是这些元素中的一种,用于指示程序正在进行后台处理或...
Flex 自定义 时间 日历 控件
Flex中的高级自定义组件开发是构建复杂用户界面的关键技术,它允许开发者超越基本组件的限制,以满足特定的业务需求和视觉设计。在创建高级组件时,了解并掌握一些核心方法的重写至关重要,这些方法涉及到组件的生命...
Flex 自定义公共包,可以在项目里直接使用