有才華的人,別忘記給滋潤你的那塊土壤施肥

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            28 隨筆 :: 5 文章 :: 147 評論 :: 0 Trackbacks
               今天有人問我flex中怎樣向DataGrid添加背景圖片,以及怎樣使表格透明。
             其實這個查下文檔就知道,可以如下用setStyle設置:

          dataGrid.setStyle('backgroundAlpha',alpha)
            
              但是,沒多久又告訴我,表頭并不透明,看不到后面的背景圖片,查了下api,簡單繼承下DataGrid,重寫drawHeaderBackground方法就行,如:

          override protected function drawHeaderBackground(headerBG:UIComponent):void
           
          {
             
          //透明參數
             headerBG.alpha = _headerAlpha;
            
          //是否可見
             headerBG.visible = _headerVisible;
             
             
          super.drawHeaderBackground(headerBG);
           }

          效果如下:
          1,未處理的DataGrid,表格不透明


          2,處理DataGrid后


          測試效果可以點擊:http://www.munkiihouse.com/flexapps/StyleDataGrid/StyleDataGridDemo.html

          代碼:
          1、繼承于DataGrid:
          package com.mh.components
          {
           
          import mx.controls.DataGrid;
           
          import mx.core.UIComponent;
           
          public class StyleDataGrid extends DataGrid
           
          {
            
            
          private var _headerBGAlpha:Number = 1;  
            
          public function set headerBGAlpha(value:Number):void
            
          {
             _headerBGAlpha 
          = value;
             invalidateDisplayList();
            }

            
            
          private var _headerBGVisible:Boolean = true;  
            
          public function set headerBGVisible(value:Boolean):void
            
          {
             _headerBGVisible 
          = value;
             invalidateDisplayList();
            }

          2、測試用例:
          <?xml version="1.0" encoding="utf-8"?>
          <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:mhc="com.mh.components.*" backgroundColor="#FF8000" backgroundGradientColors="[#ff8040, #e14900]">

           
           
          <mx:Panel x="10" y="10" width="550" height="500" layout="absolute" title="Albums" paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10" backgroundImage="@Embed('bg.jpg')">
            
          <mhc:StyleDataGrid id="sdg_albums" dataProvider="{Catalog.cataglog}" left="10" right="10" top="10" bottom="10">  
             
          <mhc:columns>
              
          <mx:DataGridColumn dataField="ARTIST" headerText="Artist" width="200" />
              
          <mx:DataGridColumn dataField="TITLE" headerText="Title" />
              
          <mx:DataGridColumn dataField="YEAR" headerText="Year" width="60" />
             
          </mhc:columns>  
            
          </mhc:StyleDataGrid>
           
          </mx:Panel>
           
           
           
          <mx:Panel x="568" y="10" width="300" height="200" layout="vertical" title="Controls" paddingTop="10" paddingRight="10" paddingBottom="10" paddingLeft="10">
            
          <mx:FormItem label="Header Alpha:"  width="100%" labelWidth="120">
             
          <mx:HSlider id="hs_h_alpha" value="1" minimum="0" maximum="1" snapInterval="0.1" allowTrackClick="true" change="{sdg_albums.headerBGAlpha = hs_h_alpha.value}" width="100"/>   
            
          </mx:FormItem>
            
            
          <mx:FormItem label="Header Visable:"  labelWidth="120">
             
          <mx:CheckBox id="cb_visible" label="Visable" selected="true" change="{sdg_albums.headerBGVisible = cb_visible.selected}"/>     
            
          </mx:FormItem>
            
          <mx:FormItem label="Background Alpha:"  width="100%" labelWidth="120">
             
          <mx:HSlider id="hs_bg_alpha" value="0.5" minimum="0" maximum="1" snapInterval="0.1" allowTrackClick="true" change="{sdg_albums.setStyle('backgroundAlpha',hs_bg_alpha.value)}" width="100"/>   
            
          </mx:FormItem>
           
          </mx:Panel>
           
          </mx:Application>


          3、測試數據:
          package
          {
           public class Catalog
           {
            
            public static function get cataglog():XMLList
            {
             return catalog..CD;
            }
            
            private static var catalog:XML = 
          <CATALOG>
               
          <CD>
                 
          <TITLE>Empire Burlesque</TITLE>
                 
          <ARTIST>Bob Dylan</ARTIST>
                 
          <COUNTRY>USA</COUNTRY>
                 
          <COMPANY>Columbia</COMPANY>
                 
          <PRICE>10.90</PRICE>
                 
          <YEAR>1985</YEAR>
               
          </CD>
               
          <CD>
                 
          <TITLE>Hide your heart</TITLE>
                 
          <ARTIST>Bonnie Tylor</ARTIST>
                 
          <COUNTRY>UK</COUNTRY>
                 
          <COMPANY>CBS Records</COMPANY>
                 
          <PRICE>9.90</PRICE>
                 
          <YEAR>1988</YEAR>
               
          </CD>
               
          <CD>
                 
          <TITLE>Greatest Hits</TITLE>
                 
          <ARTIST>Dolly Parton</ARTIST>
                 
          <COUNTRY>USA</COUNTRY>
                 
          <COMPANY>RCA</COMPANY>
                 
          <PRICE>9.90</PRICE>
                 
          <YEAR>1982</YEAR>
               
          </CD>
               
          <CD>
                 
          <TITLE>Romanza</TITLE>
                 
          <ARTIST>Andrea Bocelli</ARTIST>
                 
          <COUNTRY>EU</COUNTRY>
                 
          <COMPANY>Polydor</COMPANY>
                 
          <PRICE>10.80</PRICE>
                 
          <YEAR>1996</YEAR>
               
          </CD>
               
          <CD>
                 
          <TITLE>When a man loves a woman</TITLE>
                 
          <ARTIST>Percy Sledge</ARTIST>
                 
          <COUNTRY>USA</COUNTRY>
                 
          <COMPANY>Atlantic</COMPANY>
                 
          <PRICE>8.70</PRICE>
                 
          <YEAR>1987</YEAR>
               
          </CD>
               
          <CD>
                 
          <TITLE>Black angel</TITLE>
                 
          <ARTIST>Savage Rose</ARTIST>
                 
          <COUNTRY>EU</COUNTRY>
                 
          <COMPANY>Mega</COMPANY>
                 
          <PRICE>10.90</PRICE>
                 
          <YEAR>1995</YEAR>
               
          </CD>
               
          <CD>
                 
          <TITLE>1999 Grammy Nominees</TITLE>
                 
          <ARTIST>Many</ARTIST>
                 
          <COUNTRY>USA</COUNTRY>
                 
          <COMPANY>Grammy</COMPANY>
                 
          <PRICE>10.20</PRICE>
                 
          <YEAR>1999</YEAR>
               
          </CD>
               
          <CD>
                 
          <TITLE>For the good times</TITLE>
                 
          <ARTIST>Kenny Rogers</ARTIST>
                 
          <COUNTRY>UK</COUNTRY>
                 
          <COMPANY>Mucik Master</COMPANY>
                 
          <PRICE>8.70</PRICE>
                 
          <YEAR>1995</YEAR>
               
          </CD>
               
          <CD>
                 
          <TITLE>Big Willie style</TITLE>
                 
          <ARTIST>Will Smith</ARTIST>
                 
          <COUNTRY>USA</COUNTRY>
                 
          <COMPANY>Columbia</COMPANY>
                 
          <PRICE>9.90</PRICE>
                 
          <YEAR>1997</YEAR>
               
          </CD>
               
          <CD>
                 
          <TITLE>Tupelo Honey</TITLE>
                 
          <ARTIST>Van Morrison</ARTIST>
                 
          <COUNTRY>UK</COUNTRY>
                 
          <COMPANY>Polydor</COMPANY>
                 
          <PRICE>8.20</PRICE>
                 
          <YEAR>1971</YEAR>
               
          </CD>

             
          </CATALOG>;
           }
          }
          posted on 2009-03-27 22:59 kissjava 閱讀(4585) 評論(4)  編輯  收藏 所屬分類: Flex

          評論

          # re: DataGrid透明顯示背景圖片,及表頭透明 2009-04-30 11:54 謝謝
          flex3沒試成功,源程序是flex2版的
          樓主請指點: xwy55555@msn.com  回復  更多評論
            

          # re: DataGrid透明顯示背景圖片,及表頭透明 2009-05-02 23:49 枯寬
          沒用過flex2,不知道有什么錯誤?  回復  更多評論
            

          # 就好玩小游戲 2009-06-03 11:01 www.9haowan.com
          http://www.munkiihouse.com/flexapps/StyleDataGrid/srcview/index.html

          這有源碼:flex3可以成功的。  回復  更多評論
            

          # 請求幫個忙 2012-08-23 19:33 李志奎
          這個文章的解決方案,麻煩您能不能指導一下,郵箱lsksll@163.com

          急用,謝謝  回復  更多評論
            

          主站蜘蛛池模板: 泊头市| 桐柏县| 额尔古纳市| 呼伦贝尔市| 页游| 金堂县| 岚皋县| 江都市| 拉萨市| 怀来县| 会泽县| 卢湾区| 宽城| 涞水县| 许昌市| 桑日县| 会泽县| 陇川县| 北碚区| 苍梧县| 澄城县| 青川县| 重庆市| 郴州市| 漳平市| 克东县| 昭苏县| 砚山县| 文登市| 集贤县| 惠东县| 启东市| 昔阳县| 扎囊县| 廊坊市| 西乌珠穆沁旗| 丹凤县| 平山县| 永嘉县| 淮滨县| 理塘县|