日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
解析三大FlexDataGrid背景色調試方法

本文和大家重點討論一下Flex DataGrid背景顏色調試,在Flex運用中經(jīng)常提到的有關Flex DataGrid問題是如何改變Flex DataGrid單元格(cell),列(column)和行(row)的背景顏色(backgroundcolor)這里對這3種顏色做一個總結。

我們提供的服務有:成都網(wǎng)站設計、做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、鄱陽ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的鄱陽網(wǎng)站制作公司

Flex DataGrid背景顏色調試

在Flex運用中經(jīng)常提到的有關Flex DataGrid問題是如何改變Flex DataGrid單元格(cell),列(column)和行(row)的背景顏色(backgroundcolor)這里對這3種顏色做一個總結。

1.設置行(row)的背景色

主要是通過對Flex DataGrid擴展,對protected函數(shù)drawRowBackground()進行重寫,具體代碼如下:

 
 
 
  1. overrideprotectedfunctiondrawRowBackground(s:Sprite,rowIndex:int,
  2. y:Number,height:Number,color:uint,dataIndex:int):void  
  3. {  
  4. if(dataIndex>=dataProvider.length){  
  5. super.drawRowBackground(s,rowIndex,y,height,color,dataIndex);  
  6. return;  
  7. }  
  8. if(dataProvider.getItemAt(dataIndex).col3<2000){//setcoloraccordinttodatas  
  9. super.drawRowBackground(s,rowIndex,y,height,0xC0C0C0,dataIndex);  
  10. }else{  
  11. super.drawRowBackground(s,rowIndex,y,height,color,dataIndex);  
  12. }  
  13. }  
  14.  

 這段代碼中根據(jù)Flex DataGrid的數(shù)據(jù)源進行判斷來設置背景色,但是它有個缺陷,就是這個具體的背景色我們無法自己靈活指定。因此派生出新的CustomRowColorFlex DataGrid,具體代碼如下:

 
 
 
  1. packagecwmlab.controls  
  2. {  
  3. importmx.controls.*;  
  4. importflash.display.Shape;  
  5. importmx.core.FlexShape;  
  6. importflash.display.Graphics;  
  7. importflash.display.Sprite;  
  8. importmx.rpc.events.AbstractEvent;  
  9. importmx.collections.ArrayCollection;  
  10. importflash.events.Event;  
  11. /**  
  12. *Thisisanextendedversionofthebuilt-inFlexFlex DataGrid.  
  13. *Thisextendedversionhasthecorrectoverridelogicinit  
  14. *todrawthebackgroundcolorofthecells,basedonthevalueofthe  
  15. *dataintherow.  
  16. **/  
  17.  
  18. publicclassCustomRowColorFlex DataGridextendsFlex DataGrid  
  19. {  
  20. privatevar_rowColorFunction:Function;  
  21. publicfunctionCustomRowColorFlex DataGrid()  
  22. {  
  23. super();  
  24. }  
  25. /**  
  26. *Auser-definedfunctionthatwillreturnthecorrectcolorofthe  
  27. *row.Usuallybasedontherowdata.  
  28. *  
  29. *expectedfunctionsignature:  
  30. *publicfunctionF(item:Object,defaultColor:uint):uint  
  31. **/  
  32.  
  33. publicfunctionsetrowColorFunction(f:Function):void  
  34. {  
  35. this._rowColorFunction=f;  
  36. }  
  37.  
  38. publicfunctiongetrowColorFunction():Function  
  39. {  
  40. returnthis._rowColorFunction;  
  41. }  
  42.  
  43. /**  
  44. *Drawsarowbackground  
  45. *atthepositionandheightspecifiedusingthe  
  46. *colorspecified.ThisimplementationcreatesaShapeasa  
  47. *childoftheinputSpriteandfillsitwiththeappropriatecolor.  
  48. *ThismethodalsousesthebackgroundAlphastyleproperty  
  49. *settingtodeterminethetransparencyofthebackgroundcolor.  
  50. *  
  51. *@paramsASpritethatwillcontainadisplayobject  
  52. *thatcontainsthegraphicsforthatrow.  
  53. *  
  54. *@paramrowIndexTherow'sindexinthesetofdisplayedrows.The  
  55. *headerdoesnotcount,thetopmostvisiblerowhasarowindexof0.  
  56. *Thisisusedtokeeptrackoftheobjectsusedfordrawing  
  57. *backgroundssoaparticularrowcanre-usethesamedisplayobject  
  58. *eventhoughtheindexoftheitemthatrowisrenderinghaschanged.  
  59. *  
  60. *@paramyThesuggestedypositionforthebackground  
  61. *@paramheightThesuggestedheightfortheindicator  
  62. *@paramcolorThesuggestedcolorfortheindicator  
  63. *  
  64. *@paramdataIndexTheindexoftheitemforthatrowinthe  
  65. *dataprovider.Thiscanbeusedtocolorthe10thitemdifferently  
  66. *forexample.  
  67. */  
  68.  
  69. overrideprotectedfunctiondrawRowBackground(s:Sprite,rowIndex:int,
  70. y:Number,height:Number,color:uint,dataIndex:int):void  
  71. {  
  72. if(this.rowColorFunction!=null){  
  73. if(dataIndex
  74. varitem:Object=this.dataProvider.getItemAt(dataIndex);  
  75. color=this.rowColorFunction.call(this,item,color);  
  76. }  
  77. }  
  78. super.drawRowBackground(s,rowIndex,y,height,color,dataIndex);  
  79. }  
  80. }  
  81. }  
  82.  

 在具體使用過程中可以這樣調用:

 
 
 
  1.  
  2. rowColorFunction="setCustomColor"> 
  3. privatefunctionsetCustomColor(item:Object,color:uint):uint  
  4. {  
  5. if(item['col3']>=2000)  
  6. {  
  7. return0xFF0033;  
  8. }  
  9. returncolor;  
  10. }  
  11.  

 #p#2.設置Flex DataGrid列的背景色

這個很簡單,只要設置Flex DataGridColumn的屬性backgroundColor="0x0000CC"即可。

3.設置Flex DataGrid單元格(cell)的背景色

這個主要通過itemRenderer進行設置,itemRenderer可以是Label,也可以是其他如Flex DataGridItemRenderer。

先看看用Label如何設置背景色

 
 
 
  1.  
  2.  
  3.  
  4.  
  5. overridepublicfunctionsetdata(value:Object):void  
  6. {  
  7. super.data=value;  
  8. if(value.col1=='Toyota'){  
  9. this.opaqueBackground=0xCC0000;  
  10. }  
  11. }  
  12. ]]> 
  13.  
  14.  
  15.  
  16.  
  17.  

 用Flex DataGridItemRenderer進行背景色設置如下:

 
 
 
  1.  
  2.  
  3.  
  4.  
  5. overridepublicfunctionsetdata(value:Object):void  
  6. {  
  7. super.data=value;  
  8. if(value.col3>=2000){  
  9. this.background=true;  
  10. this.backgroundColor=0x00cc00;  
  11. }  
  12. }  
  13. ]]> 
  14.  
  15.  
  16.  
  17.  
  18.  


文章名稱:解析三大FlexDataGrid背景色調試方法
標題鏈接:http://www.5511xx.com/article/codcpcd.html