这篇文章主要为大家展示了“Flex DataGrid背景色如何调试”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Flex DataGrid背景色如何调试”这篇文章吧。

创新互联公司坚信:善待客户,将会成为终身客户。我们能坚持多年,是因为我们一直可值得信赖。我们从不忽悠初访客户,我们用心做好本职工作,不忘初心,方得始终。10年网站建设经验创新互联公司是成都老牌网站营销服务商,为您提供成都做网站、网站制作、网站设计、html5、网站制作、成都品牌网站建设、微信小程序定制开发服务,给众多知名企业提供过好品质的建站服务。
Flex DataGrid背景颜色调试
在Flex运用中经常提到的有关Flex DataGrid问题是如何改变Flex DataGrid单元格(cell),列(column)和行(row)的背景颜色(backgroundcolor)这里对这3种颜色做一个总结。
1.设置行(row)的背景色
主要是通过对Flex DataGrid扩展,对protected函数drawRowBackground()进行重写,具体代码如下:
overrideprotectedfunctiondrawRowBackground(s:Sprite,rowIndex:int,y:Number,height:Number,color:uint,dataIndex:int):void { if(dataIndex>=dataProvider.length){ super.drawRowBackground(s,rowIndex,y,height,color,dataIndex); return; } if(dataProvider.getItemAt(dataIndex).col3<2000){//setcoloraccordinttodatas super.drawRowBackground(s,rowIndex,y,height,0xC0C0C0,dataIndex); }else{ super.drawRowBackground(s,rowIndex,y,height,color,dataIndex); } }这段代码中根据Flex DataGrid的数据源进行判断来设置背景色,但是它有个缺陷,就是这个具体的背景色我们无法自己灵活指定。因此派生出新的CustomRowColorFlex DataGrid,具体代码如下:
packagecwmlab.controls { importmx.controls.*; importflash.display.Shape; importmx.core.FlexShape; importflash.display.Graphics; importflash.display.Sprite; importmx.rpc.events.AbstractEvent; importmx.collections.ArrayCollection; importflash.events.Event; /** *Thisisanextendedversionofthebuilt-inFlexFlex DataGrid. *Thisextendedversionhasthecorrectoverridelogicinit *todrawthebackgroundcolorofthecells,basedonthevalueofthe *dataintherow. **/ publicclassCustomRowColorFlex DataGridextendsFlex DataGrid { privatevar_rowColorFunction:Function; publicfunctionCustomRowColorFlex DataGrid() { super(); } /** *Auser-definedfunctionthatwillreturnthecorrectcolorofthe *row.Usuallybasedontherowdata. * *expectedfunctionsignature: *publicfunctionF(item:Object,defaultColor:uint):uint **/ publicfunctionsetrowColorFunction(f:Function):void { this._rowColorFunction=f; } publicfunctiongetrowColorFunction():Function { returnthis._rowColorFunction; } /** *Drawsarowbackground *atthepositionandheightspecifiedusingthe *colorspecified.ThisimplementationcreatesaShapeasa *childoftheinputSpriteandfillsitwiththeappropriatecolor. *ThismethodalsousesthebackgroundAlphastyleproperty *settingtodeterminethetransparencyofthebackgroundcolor. * *@paramsASpritethatwillcontainadisplayobject *thatcontainsthegraphicsforthatrow. * *@paramrowIndexTherow'sindexinthesetofdisplayedrows.The *headerdoesnotcount,thetopmostvisiblerowhasarowindexof0. *Thisisusedtokeeptrackoftheobjectsusedfordrawing *backgroundssoaparticularrowcanre-usethesamedisplayobject *eventhoughtheindexoftheitemthatrowisrenderinghaschanged. * *@paramyThesuggestedypositionforthebackground *@paramheightThesuggestedheightfortheindicator *@paramcolorThesuggestedcolorfortheindicator * *@paramdataIndexTheindexoftheitemforthatrowinthe *dataprovider.Thiscanbeusedtocolorthe10thitemdifferently *forexample. */ overrideprotectedfunctiondrawRowBackground(s:Sprite,rowIndex:int,y:Number,height:Number,color:uint,dataIndex:int):void { if(this.rowColorFunction!=null){ if(dataIndex在具体使用过程中可以这样调用:
privatefunctionsetCustomColor(item:Object,color:uint):uint { if(item['col3']>=2000) { return0xFF0033; } returncolor; }
2.设置Flex DataGrid列的背景色
这个很简单,只要设置Flex DataGridColumn的属性backgroundColor="0x0000CC"即可。
3.设置Flex DataGrid单元格(cell)的背景色
这个主要通过itemRenderer进行设置,itemRenderer可以是Label,也可以是其他如Flex DataGridItemRenderer。
先看看用Label如何设置背景色
用Flex DataGridItemRenderer进行背景色设置如下:
=2000){ this.background=true; this.backgroundColor=0x00cc00; } } ]]>
以上是“Flex DataGrid背景色如何调试”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
网页题目:FlexDataGrid背景色如何调试
浏览路径:http://www.jxjierui.cn/article/jpgpej.html


咨询
建站咨询
