`

Flex个人知识库(3)

阅读更多
1、 DataGrid中的行数据交换位置
<?xml version="1.0" encoding="utf-8"?>   
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:window="com.diaztorres.window.*" xmlns:log="com.log.*">   
<mx:Script>   
    <![CDATA[   
       import mx.collections.IList;     
       import mx.collections.ArrayCollection   
       import mx.controls.Alert;         
       public function moveUp(event : MouseEvent) : void  
        {                    
           var i : int = peopleList.selectedIndex;
            
          if (i >= 1&&peopleList.selectedItem)   
           {                
          
             IList(peopleList.dataProvider).addItemAt(peopleList.selectedItem,i-1);
              //Alert.show(peopleList.selectedIndex.toString());                     
             IList(peopleList.dataProvider).removeItemAt(i+1);   
             peopleList.selectedIndex = i;   
                         //Alert.show(i.toString());
            }   
        }   
           
       public function moveDown(event : MouseEvent) : void  
        {   
        var i : int = peopleList.selectedIndex;         
       if (i < (ArrayCollection(peopleList.dataProvider).length - 1) && peopleList.selectedItem)   
        {                
           IList(peopleList.dataProvider).addItemAt(peopleList.selectedItem,i + 2);                     
                IList(peopleList.dataProvider).removeItemAt(i);      
                peopleList.selectedIndex = i;                }               
        }                       
         ]]>   
     </mx:Script> 
      <mx:Array id="arrDP">
        <mx:Object c="1" c1="One" />
        <mx:Object c="2" c1="One" />
        <mx:Object c="3" c1="One" />
</mx:Array>  
     <mx:VBox horizontalAlign="center" x="618" y="176" height="264">      
     <mx:DataGrid id="peopleList"  dataProvider="{arrDP}"  x="198" y="66" width="302">   
          
     </mx:DataGrid>   
     <mx:ControlBar width="298" horizontalAlign="right" height="26">   
         <mx:Button label="上移" click="moveUp(event)"/>   
         <mx:Button label="下移" click="moveDown(event)"/>   
     </mx:ControlBar>       
</mx:VBox>   
</mx:Application>


2、 ArrayCollection排序
<?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" minWidth="955" minHeight="600"
			   >
	<s:layout>
		<s:BasicLayout/>
	</s:layout>

	<fx:Script>
		<![CDATA[
			import flashx.textLayout.factory.TruncationOptions;
			
			import mx.collections.ArrayCollection;
			import mx.collections.Sort;
			import mx.collections.SortField;
			
			[Bindable]
			private var ac:ArrayCollection = new ArrayCollection([{ID:0,userName:"AAA"},
				{ID:1,userName:"CCC"},
				{ID:2,userName:"BBB"}]);
			
			public function init():void{
//				ac.addItem(
//					[{ID:0,userName:"AAA"},
//					{ID:1,userName:"CCC"},
//					{ID:2,userName:"BBB"}]
////				);
//				ac = (
//					[{ID:0,userName:"AAA"},
//						{ID:1,userName:"CCC"},
//						{ID:2,userName:"BBB"}]
//				);
			}
			protected function button1_clickHandler(event:MouseEvent):void
			{
				var sort:Sort = new Sort();//定义sort对象
				//选择排序的字段(默认是按升序排序的)
				sort.fields = [new SortField("userName")];
				//把Sort对象赋给ac
				ac.sort = sort;
				
				//如果按照降序排序,需要修改一下
				//sort.fields = [new SortField("userName",true,true)];
				
				//如果先降序(ID)后升序(userName),就这样写,以此类推
				//sort.fields = [new SortField("userID",true,true),new SortField("userName")];
				
				ac.refresh();
			}
			protected function button2_clickHandler(event:MouseEvent):void
			{
				var sort:Sort = new Sort();//定义sort对象
				//选择排序的字段(默认是按升序排序的)
				sort.fields = [new SortField("userName",true,true)];
				//把Sort对象赋给ac
				ac.sort = sort;
				ac.refresh();
			}
		]]>
	</fx:Script>


	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
	</fx:Declarations>
	
	<s:Button label="升序排序" click="button1_clickHandler(event)" fontSize="20" x="10" y="61"/>
	<s:Button label="降序排序" click="button2_clickHandler(event)" fontSize="20" x="10" y="190"/>
	<s:List x="288" y="99" dataProvider="{ac}" labelField="userName" >
	</s:List>
	
</s:Application>


3、 将图片作为背景(非嵌入式)
NoBedImage
<?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:local="*"
			   width="90%" height="90%" viewSourceURL="srcview/index.html">
	
	<s:Group width="100" height="100" horizontalCenter="0" y="10"><!--{widthSlider.value}-->
		<local:TiledImage source="assets/appPlatform.png" width="100%" height="100%" />
		<s:Label text="Tiled Background" fontSize="16" horizontalCenter="0" verticalCenter="0" fontWeight="bold" />
	</s:Group>
	
	<!--<s:HSlider id="widthSlider" value="200" minimum="150" maximum="300" horizontalCenter="0" y="125" />-->	
</s:Application>


<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
		 xmlns:s="library://ns.adobe.com/flex/spark" 
		 xmlns:mx="library://ns.adobe.com/flex/mx">
	
	<fx:Script>
		<![CDATA[
			import mx.controls.SWFLoader;
			import flash.display.BitmapData;
			import flash.display.Bitmap;
			
			public function set source(value:Object):void {
				loader.source = value;
			}
			
			private function updateSource():void {
				// use a SWFLoader to download the bitmap data then push that into the BitmapImage
				bitmapImage.source = loader.content;
			}
		]]>
	</fx:Script>
	<mx:SWFLoader id="loader" complete="updateSource()" width="0" height="0" />
	<s:BitmapImage id="bitmapImage" width="100%" height="100%" fillMode="repeat" />
	
</s:Group>


4、 Datagrid根据条件改变行背景色
DataGridDrawRowBackground
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12" xmlns:local="*" width="400" height="300">
	<mx:Script>
		<![CDATA[
			[Bindable]
			private var _record:XML =
				<list>
				<user name="小明" result="60"> </user>
				<user name="小红" result="59"> </user>
				<user name="小白" result="75"> </user>
				<user name="小黑" result="38"> </user>
				<user name="小青" result="80"> </user>
				<user name="小文" result="100"> </user>
				<user name="小鬼" result="99"> </user>
				<user name="小东" result="40"> </user>
				</list>
				
		]]>
	</mx:Script>
	<local:MyDataGrid dataProvider="{_record.user}" right="5" left="5" top="5" bottom="5">
		<local:columns>
			<mx:DataGridColumn headerText="姓名" dataField="@name"/>
			<mx:DataGridColumn headerText="成绩" dataField="@result"/>
		</local:columns>
	</local:MyDataGrid>
</mx:Application> 


MyDataGrid
<?xml version="1.0" encoding="utf-8"?>
<mx:DataGrid xmlns:mx="http://www.adobe.com/2006/mxml">
	<mx:Script>
		<![CDATA[
			override protected function drawRowBackground(s:Sprite, rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void
			{
				var list:XMLList = new XMLList(dataProvider)
				if(dataIndex < list.length() && list[dataIndex].@result <60)color = 0xFF6600
				super.drawRowBackground(s,rowIndex,y,height,color,dataIndex);
			}
		]]>
	</mx:Script>
</mx:DataGrid>


^_^  ^_^ 
import flash.display.Sprite;
	
	import flashx.textLayout.events.ModelChange;
	
	import mx.collections.ArrayCollection;
	import mx.controls.DataGrid;
	
	public class DatacenterDataGridRowColor extends DataGrid
	{
		public function DatacenterDataGridRowColor(){//this.setStyle("backgroundColor", 0xFF0000);
			//this.setStyle("backgroundAlpha", 0.27);
		}
		override protected function drawRowBackground(s:Sprite, rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void
		{
			if(dataProvider!=null && dataIndex<dataProvider.length){
				var item:Object = dataProvider.getItemAt(rowIndex);
				if( item.status == "禁用") color = 0xffeabc;
			}
			super.drawRowBackground(s, rowIndex, y, height, color, rowIndex);
		}
	}


附个人Cairngorm工程
分享到:
评论

相关推荐

    Flex个人知识库之Apple组件

    "Flex个人知识库之Apple组件"这个标题暗示了这是一份关于使用Adobe Flex技术来构建针对Apple设备应用的知识资源。Flex是一种开源的、基于ActionScript的框架,用于创建富互联网应用程序(RIA),尤其适用于构建跨...

    flex3

    3. **Flex SDK**: Flex SDK是开发Flex应用程序的基础工具集,包括编译器、Flex Builder插件、Flex组件库等。开发者可以免费下载和使用,创建自定义组件或者扩展已有组件。 4. **Flex Compiler**: Flex编译器负责将...

    FLEX开发中文文档

    这份文档由四部分组成,分别对应四个章节,旨在帮助开发者理解和掌握Flex的相关知识,同时融入了作者的个人理解和实践经验,以更贴近中文读者的理解习惯。 第一部分,"Flex中文帮助No1-2章.pdf",可能包含了Flex的...

    Flex 一些个人认为不错的案例

    这个标题"Flex 一些个人认为不错的案例"表明我们将探讨一些使用Flex开发的优秀示例项目,这些案例可能展示了Flex在创建交互式、动态用户界面方面的强大力量。 描述中提到“大家一块分享,共同进步”,这暗示了这些...

    好看的FLEX相册

    描述中的“个人觉得还不错,挺好看的,自己做的FLEX相册。简单明了”,说明这个相册项目设计简洁,易于理解,而且是作者自己独立完成的。Flex相册可能包含了图片展示、缩略图导航、滑动切换等功能,并且注重用户界面...

    java flex开发项目配置实例

    【Java Flex 开发项目配置实例】教程旨在帮助开发者快速搭建基于Java和Flex的开发环境,实现两者间的交互。...要深入学习Java Flex开发,还需要掌握ActionScript、MXML、BlazeDS配置、Spring框架集成等更多知识。

    Flex ™ Builder 2

    ### Flex™ Builder 2 使用指南知识点详解 #### 一、Flex™ Builder 2 概述 **Flex™ Builder 2**是由Adobe Systems Incorporated发布的一款专为开发基于Adobe Flex框架的应用程序而设计的强大集成开发环境(IDE)...

    FlexBuilder2帮助文档

    4. **Flex组件库**:Flex提供了一系列内置组件,如Button、Label、Canvas等,文档会讲解如何使用这些组件构建用户界面,并展示自定义组件的方法。 5. **数据绑定**:Flex中的数据绑定机制允许开发者将UI元素的值与...

    一些关于flex的示例网站

    - **组件和容器**:Flex提供了丰富的UI组件库,包括按钮、文本框等,以及容器用于组织这些组件。 - **数据绑定**:Flex支持强大的数据绑定机制,允许UI组件与数据模型自动同步更新。 ### 2. Flex and Java ...

    Flex 3注册码

    通过了解Flex 3的基础知识以及如何正确获取和使用注册码,开发者不仅可以保护自己的权益,还能充分利用这款强大的工具来构建高质量的应用程序。在未来的工作中,建议开发者们始终选择正规渠道获取软件和服务,以确保...

    Flex 项目安装备份文件

    3. **本地备份**:在个人计算机上设置自动备份到另一硬盘分区或外部存储设备。 4. **远程备份**:将代码存放到云服务,如GitHub、Bitbucket或私有服务器,以应对硬件故障。 5. **版本标签**:在项目关键里程碑时打...

    flex嵌入jsp心得

    标题与描述概述的知识点是关于如何将Flex框架嵌入到JSP页面中,以实现更丰富的数据可视化功能,特别是图表的展示。以下是基于标题、描述、标签以及部分内容的详细解析和扩展。 ### Flex嵌入JSP开发心得 #### 1. ...

    Flex实现动态仪表盘

    在Flex中,我们可以利用各种组件库来创建这些图形,例如Spark或MX组件集。Spark组件提供了更加现代和可定制的设计,而MX组件则更为成熟且功能丰富。 1. **数据源的连接**:首先,你需要一个数据源,可能是数据库、...

    Flex3正式版序列号

    关于“Flex3正式版序列号”的相关知识点,我们首先需要明确几个关键概念:Flex3是什么?为什么需要序列号?以及序列号如何使用等。 ### 一、Flex3简介 Adobe Flex是一个免费开源的软件框架,用于构建跨浏览器的富...

    blog.zip_flex_flex blog

    2. **Flex组件库**:包括按钮、文本框、面板等UI元素,用于构建用户界面。 3. **数据绑定**:使得视图和模型之间的数据同步自动化。 4. **事件驱动编程**:用户操作触发事件,事件处理器执行相应逻辑。 5. **Flex ...

    Flex入门教程(PPT格式的) 个人觉得不错

    Flex是Adobe公司开发的一种用于构建富...这份Flex入门教程PPT将涵盖以上知识点,通过实例和清晰的讲解,帮助初学者快速上手。无论你是网页开发者希望扩展技能,还是对RIA感兴趣,这份教程都将是你宝贵的参考资料。

    Flex4权威指南英文原版高清晰

    1. **强大的用户界面组件库**:Flex4提供了丰富的UI组件,可以轻松构建美观且功能完善的用户界面。 2. **高性能渲染引擎**:利用Adobe AIR和Flash Player等技术实现高效渲染,确保应用程序运行流畅。 3. **跨平台...

Global site tag (gtag.js) - Google Analytics