`
fengzheng0603
  • 浏览: 72958 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

flex自定义list展示成表格的样式,增加单击事件

    博客分类:
  • flex
 
阅读更多


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.用到的图片:



 完成。

  • 大小: 28.9 KB
  • 大小: 3.3 KB
分享到:
评论

相关推荐

    flex自定义组件事件DEMO

    这个"flex自定义组件事件DEMO"提供了关于如何创建和管理自定义组件事件的实际示例。下面我们将详细探讨Flex自定义组件、事件处理以及如何通过示例进行学习。 1. Flex自定义组件:Flex允许开发者通过继承现有的...

    flex 自定义控件、事件

    这个主题聚焦于“flex自定义控件与事件”,这是一个关键的开发概念,特别是对于那些希望深入理解Flex架构和提升应用用户体验的开发者来说。 自定义控件在Flex开发中扮演着重要角色,它们允许开发者根据项目需求创建...

    flex4自定义事件用法

    自定义事件是Flex开发中的一个重要概念,允许开发者扩展内置事件系统,以满足特定项目的需要。下面将详细介绍Flex4自定义事件的用法,以及如何在一个完整的项目中导入和运行。 1. **创建自定义事件类** - 首先,...

    Flex手机项目自定义List的ItemRenderer

    在Flex手机项目开发中,创建自定义的List组件ItemRenderer是一项常见的需求,目的是为了提供更加丰富和个性化的显示效果。本文将深入探讨如何利用IconItemRenderer来实现这一目标,同时结合具体的实例,介绍两种不同...

    Flex 自定义组件ImageViewer

    在Flex中,自定义组件是开发者根据项目需求创建的特殊UI元素,可以扩展和定制标准的MX或Spark组件。本示例着重于一个名为“ImageViewer”的自定义组件,这通常是一个用于展示图像并可能包含缩放、平移等交互功能的...

    flex 自定义组件

    5. **样式和皮肤**:Flex支持丰富的样式系统,你可以定义组件的默认样式,并允许用户通过样式表进行自定义。此外,组件还可以使用皮肤来改变其外观,皮肤可以是静态的图像,也可以是动态的组件实例。 6. **测试和...

    Flex自定义加载条(小起)

    在本文中,我们将深入探讨如何在Flex...总结来说,自定义Flex加载条是一项涉及组件样式、模板、动画和事件处理的综合工作。通过学习和实践这个示例,你可以掌握如何根据项目需求定制出独特的加载条组件,提升用户体验。

    Flex 自定义ToolTip

    ### Flex自定义ToolTip详解 在Flex开发中,`ToolTip`是一种非常实用的界面元素,用于在用户悬停或聚焦某个控件时显示额外的信息。默认情况下,Flex提供了基本的`ToolTip`功能,但有时为了满足特定的设计需求或者...

    Flex自定义组件和事件

    在Flex中,自定义组件和事件的使用对于创建功能丰富的用户界面至关重要。下面我们将详细探讨这两个主题。 ### 一、Flex自定义组件 #### 1. 创建自定义组件的原因 在Flex应用中,有时标准组件库提供的组件无法满足...

    flex自定义事件、简单例子说明

    ### Flex自定义事件详解 Flex 是一款用于构建和部署跨平台桌面应用与移动应用的开源框架,它基于Adobe Flash Platform。在Flex应用开发过程中,事件处理机制是非常重要的一个环节,而自定义事件则是这一机制中的...

    Flex高级表格分组与列锁定

    在Flex开发中,高级表格(Advanced Data Grid)是Adobe Flex框架提供的一种强大的数据展示组件,它允许开发者以灵活的方式展示复杂的数据集。本教程将深入探讨如何实现表格的标题分组、列锁定以及相关的样式设置。 ...

    flex自定义树形结构

    本篇文章将深入探讨如何在Flex环境中自定义实现一个具备展开、收缩功能的多级目录树形结构。 首先,让我们理解`Flex`布局。Flex布局,全称为Flexible Box,是一种用于容器中元素的布局模型,旨在提供更好的灵活性,...

    flex自定义创建css样式

    本篇文章将深入探讨如何在Flex布局中自定义创建CSS样式,以满足多样化的设计需求。 首先,我们需要理解Flex布局的基本概念。在Flex布局中,容器被称为“flex容器”,其内部的子元素称为“flex项目”。通过设置容器...

    各种Flex自定义组件

    自定义的datagrid可能增加了特殊的功能,如自定义列类型、分页、可编辑单元格或高级过滤选项。 3. 树形视图(tree):树形视图常用于展示层次结构的数据,如文件系统或组织结构。自定义的tree可能提供了更好的节点...

    flex自定义组件介绍

    自定义组件的前提条件通常包括对Flex SDK的熟悉,对面向对象编程的理解,以及对组件生命周期、样式和事件处理机制的掌握。 主要内容提到了一个具体的自定义组件——图片组件,它具有以下功能: 1. 创建图片组件时...

    flex 自定义进度条

    Flex布局,全称为Flexible Box布局,是一种在CSS3中引入的布局模型,旨在提供更灵活的盒状模型布局方式,尤其适合在不同屏幕尺寸和设备上展示内容。 进度条是用户界面中常见的元素,用于显示任务或过程的完成状态。...

    FLEX自定义等待图标资源

    在IT行业中,FLEX是一种基于ActionScript和Flash技术的开源框架,主要用于构建富互联网应用程序(RIA)。FLEX的用户界面通常包含丰富的交互元素,而等待图标则是这些元素中的一种,用于指示程序正在进行后台处理或...

    Flex 自定义 时间 日历 控件

    Flex 自定义 时间 日历 控件

    flex 高级自定义组件

    Flex中的高级自定义组件开发是构建复杂用户界面的关键技术,它允许开发者超越基本组件的限制,以满足特定的业务需求和视觉设计。在创建高级组件时,了解并掌握一些核心方法的重写至关重要,这些方法涉及到组件的生命...

    Flex 自定义公共包

    Flex 自定义公共包,可以在项目里直接使用

Global site tag (gtag.js) - Google Analytics