Flex中通过继承可以为新组件增加新的功能,如通过注入方法,改变背景色,改变位置和高度等。这里主要掌握原组件的一些特性,属性和方法,以便根据需要的功能加以覆写(也可以自己扩展),达到自己想要的效果。下面是一个简单的例子
1、新建MyDataGrid.as,继承DataGrid,覆写drawRowBackground方法,注入rowColorFunction方法。
package com.test
{
import flash.display.Sprite;
import mx.controls.Alert;
import mx.controls.DataGrid;
import mx.controls.dataGridClasses.DataGridColumn;
public class MyDataGrid extends DataGrid
{
private var _rowColorFunction:Function;
public function MyDataGrid()
{
super();
}
//为MyDataGrid注入函数,get set
public function set rowColorFunction(f:Function):void{
this._rowColorFunction = f;
}
public function get rowColorFunction():Function{
return this._rowColorFunction;
}
//覆写drawRowBackground方法,可改变位置、高度、颜色等,这里只改变背景颜色
override protected function drawRowBackground(s:Sprite, rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void{
if( this.rowColorFunction != null ){
if( rowIndex < this.dataProvider.length && rowIndex < this.listItems.length && this.listItems[rowIndex].length>0){
var data:XML = this.listItems[rowIndex][0].data;
color = this.rowColorFunction.call(this,data,color);
}else{
color = this.rowColorFunction.call(this,null,color);
}
}
super.drawRowBackground(s, rowIndex, y, height, color, dataIndex);
}
}
}
2、新建MyDataGridTest.mxml文件,MyDataGrid中可以使用已经注入的方法rowColorFunction
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
initialize="init()" xmlns:md="com.test.*" width="600" height="300">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
private var dataXml:XML;
private function init():void {
dataXmlService.url = "students.xml";//可改成具体请求方式
try{
dataXmlService.send();
}catch(e:IOError){
Alert.show("请求出错");
}
}
private function dataXmlToData(evt:ResultEvent):void{
dataXml = XML(evt.result);
//提供数据源
myDataGrid.dataProvider = dataXml.children();
}
//设置行背景色的方法
private function getRowColor(data:Object,color:uint):Object {
if(data==null) return 0xFFFFFF;
return data.@color;
}
]]>
</mx:Script>
<mx:HTTPService id="dataXmlService" resultFormat="xml" result="dataXmlToData(event)" />
<!--使用自己定义的组件MyDataGrid,可以使用已经注入的方法rowColorFunction -->
<md:MyDataGrid id="myDataGrid" rowColorFunction="getRowColor" x="23.5" y="5" width="553" height="275" fontSize="12" fontWeight="normal">
<md:columns>
<mx:DataGridColumn headerText="学号" dataField="@col1"/>
<mx:DataGridColumn headerText="姓名" dataField="@col2"/>
<mx:DataGridColumn headerText="年龄" dataField="@col3"/>
<mx:DataGridColumn headerText="爱好" dataField="@col4"/>
<mx:DataGridColumn headerText="住址" dataField="@col5"/>
</md:columns>
</md:MyDataGrid>
</mx:Application>
3、使用的xml数据students.xml和显示效果
<?xml version="1.0" encoding="UTF-8"?>
<datas>
<data col1="2100" col2="张三" col3="20" col4="篮球" col5="北京" color="0x8DFEFE" />
<data col1="2101" col2="张四" col3="21" col4="篮球" col5="北京" color="0x8DFEFE" />
<data col1="2102" col2="张五" col3="22" col4="篮球" col5="北京" color="0x8DFEFE" />
<data col1="2103" col2="张六" col3="20" col4="篮球" col5="北京" color="0x8DFEFE" />
<data col1="2104" col2="张七" col3="22" col4="篮球" col5="北京" color="0x8DFEFE" />
<data col1="2105" col2="张八" col3="22" col4="篮球" col5="北京" color="0xAABBDD" />
<data col1="2106" col2="李四" col3="20" col4="篮球" col5="北京" color="0xAABBDD" />
<data col1="2107" col2="张大" col3="21" col4="篮球" col5="北京" color="0xAABBDD" />
<data col1="2108" col2="张关" col3="21" col4="篮球" col5="北京" color="0xAABBDD" />
<data col1="2109" col2="张看" col3="20" col4="篮球" col5="北京" color="0xAABBDD" />
</datas>
- 大小: 31.4 KB
分享到:
相关推荐
Flex提供了一个名为Effect类的基类,开发者可以通过继承这个类并覆盖其方法来创建自定义特效。同时,Flex还提供了EffectManager类来管理和控制特效的执行。例如,Fade特效用于改变组件的透明度,Slide特效则用于改变...
- **示例应用**: 展示 Flex 和 Java 之间基本通信的例子。 - **实现**: - 创建 Java 后端服务。 - 在 Flex 客户端调用该服务。 #### 23. Java&Flex:RemoteObject - **RemoteObject**: Flex 中用于与远程服务...
根据给定的信息,本文将详细解释“Flex-Jsp-Mysql简单结合例子”这一主题,包括Flex、JSP以及MySQL在项目中的应用与交互,并重点分析MVC架构在Flex中的实现方式。 ### Flex简介 Flex是一种用于构建跨浏览器、跨...
本篇文章将深入探讨如何利用ItemRenderer实现一个灵活且功能丰富的相册示例,同时也会涉及Flex中的一些核心概念和编程技巧。 首先,我们需要了解ItemRenderer的基本结构。ItemRenderer是ActionScript类,通常继承自...
通过这个"flex例子.flex源程序",你不仅可以了解Flex的基本语法和组件使用,还能学习到如何组织和管理一个Flex项目,以及如何利用FlexCover这样的工具进行测试和质量控制。在深入学习过程中,还可以尝试扩展和修改...
它提供了强大的组件库、数据绑定和高级图形功能,使得开发者能够创建具有高度交互性和视觉吸引力的Web应用。在Flex4中,`HTTPService`是用于与服务器进行HTTP通信的重要类,特别适用于发送异步请求并接收XML数据。 ...
这个"flex鱼眼显示图片的例子"是一个Flex项目,它展示了如何使用Flex技术实现一个鱼眼效果的图片显示功能。鱼眼效果通常指的是将图像扭曲成类似鱼眼镜头所拍摄的弧形视野,这种效果在视觉上往往能带来独特的体验。 ...
这个标题和描述所提及的“巨大数量的Flex例子”表明,这个压缩包可能包含了大量的Flex应用实例,对于学习和理解Flex编程具有极大的帮助。 Flex的应用场景广泛,包括创建数据驱动的Web应用程序、企业级应用、桌面...
本例子旨在帮助开发者更好地理解和应用DataGrid,通过实例来学习其基本功能和特性。 DataGrid是Flex提供的一个可自定义的、可交互的数据展示控件,它能够将数组或集合中的数据以表格的形式展示出来,每个单元格都...
Flex自定义组件是指开发者根据项目需求,通过继承已有的Flex基类(如UIComponent或Canvas),并添加特定功能和样式来创建的组件。自定义组件可以扩展Flex库中默认组件的功能,提高代码重用性和灵活性。 1. 组件创建...
Flex DataGrid是一款在Adobe Flex开发环境中广泛使用的组件,主要用于展示和操作大量结构化的数据。它是一种灵活的表格视图,可以轻松地实现数据的排序、筛选、分页等功能。在这个"Flex-DataGrid源码及资料"的压缩包...
通过以上步骤,你可以在Flex 4环境中创建一个功能丰富、视觉效果独特的自定义Alert组件。这不仅可以提高项目的用户体验,还能更好地满足项目需求。在实践中,你可能需要根据具体的需求不断调整和完善,但以上提供的...
根据提供的文件信息,我们可以深入探讨 FLEX 中图形绘制的相关知识点,包括如何利用 ActionScript 进行...通过对这些类和方法的理解与应用,初学者可以快速掌握 FLEX 中的图形绘制技术,并能够绘制出更多复杂的图形。
通过上述示例,我们可以看到Flex自定义事件的强大功能及其在实际项目中的应用。自定义事件不仅可以帮助我们更好地组织代码逻辑,还能实现更复杂的交互需求。掌握如何创建和使用自定义事件对于提高Flex应用的开发效率...
综上所述,"flex使用viewstack切换页面的例子"展示了如何利用Flex 4的ViewStack组件创建多页面应用,通过编程或用户交互来切换不同视图,提供更好的用户导航体验。在实际开发中,理解并熟练运用这些知识点对于构建...
在“Flex login flex cairngorm”这个主题中,我们将探讨如何使用Cairngorm框架实现登录功能。 1. **Cairngorm架构基础** - **模型(Model)**:存储和管理应用程序的数据。 - **视图(View)**:用户界面,展示...
在Flex中,这个类通常是继承自`mx.core.Application`或`spark.components.Application`的类。这个类会定义UI元素,如组件、布局和事件处理函数。`.settings`文件可能是IDE的配置文件,包含关于代码格式化、编译选项...
此外,该工具可能还包含了一些自定义组件的例子,展示如何通过继承Flex基础组件并扩展其功能来创建自己的组件。这涉及到面向对象编程的概念,如类的继承、接口的实现以及覆盖父类方法等。 总之,Adobe Flex 3 ...
1. **继承机制**:Flex支持面向对象编程,我们通常通过继承已有组件类来创建新组件。比如,如果要重写Button,可以创建一个新的类并继承自mx.controls.Button。 2. **覆盖方法**:找到需要修改的组件行为,通常是...
这个主题——“flex中ComboBox嵌套checkbox的例子以及源代码”——将深入探讨如何实现这种功能。 首先,我们要明白,Flex本身并不直接支持ComboBox内部包含Checkbox的原生功能。但是,通过自定义组件或者使用第三方...