<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-15  評論-79  文章-0  trackbacks-0

     在FLEX開發(fā)中有一些小技巧,經(jīng)理在這里總結(jié)下,方便以后查閱,也希望能和大家一起交流。
    這些小功能在實(shí)際開發(fā)中是很經(jīng)常用的。

    一、在DataGrid的列中加圖片
    做報(bào)表的時(shí)候經(jīng)常會在DataGrid中加入一些刻度條或者增減的圖片表示一些API指標(biāo)值,其實(shí)這個(gè)功能FLEX可以實(shí)現(xiàn)。
    在DataGrid-colums-DataGridColumn中有個(gè)itemRenderer屬性,這個(gè)屬性可以讓你用一個(gè)組件來替換這個(gè)列中本來的內(nèi)容。
    OK,進(jìn)入正題。
    首先,我們先創(chuàng)建一個(gè)組件(這里以一個(gè)圖形為例),名為MyImage
    code清單1

    <?xml version="1.0" encoding="utf-8"?>
    <mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" verticalAlign="middle" horizontalAlign="right">
    <mx:Script>
     
    <![CDATA[
      override 
    public function set data(value:Object):void{
       
    if(value != null)
       
    {
        
    if(value.num != null)
        
    {
         show.text 
    = value.num;
         
    if(Number(value.num)>100)
         
    {
          imga.source 
    = "img/up.png";
         }

         
    else
         
    {
          imga.source 
    = "img/down.png";
         }

        }

       }

      }

     ]]
    >
    </mx:Script>
     
    <mx:Label id="show" textAlign="right" />
     
    <mx:Image id="imga" width="18" height="17"/>
    </mx:HBox>


    這里的num是一個(gè)dataField中的值,這里可以用value.num來取到這個(gè)值

    接下來,我們直接利用itemRenderer屬性把這個(gè)組件設(shè)置進(jìn)去就OK了
    code清單2

    <mx:DataGridColumn dataField="num" itemRenderer="MyImage" headerText="上月環(huán)比(%)" fontSize="12"/>

     

    當(dāng)然,我們除了加圖片還可以加入一些控件進(jìn)去。方法也如上就是了。


    二、列表多表頭
    用AdvancedDataGrid來繪制多表頭。如果有上下兩層的表頭,那么主表頭就用AdvancedDataGridColumnGroup標(biāo)簽,子表頭用AdvancedDataGridColumn嵌在AdvancedDataGridColumnGroup標(biāo)簽內(nèi)就可以了。
    code清單3

    <mx:AdvancedDataGrid headerColors="[#60beff,#1273ce]" alternatingItemColors="[#FFFDCE, #C8ECFF]"
               id
    ="dataGrid" click="onXMLLoaded();"
               dataProvider
    ="{array_datas}"
               width
    ="100%" height="85%"
               variableRowHeight
    ="true" fontSize="12"
               headerSortSeparatorSkin
    ="mx.skins.ProgrammaticSkin"
               wordWrap
    ="true">
            
    <mx:groupedColumns>
     
            
    <mx:AdvancedDataGridColumn dataField="org" headerText="單位" headerWordWrap="true" />
            
    <mx:AdvancedDataGridColumnGroup id="shuma" headerText="管理費(fèi)用總額(萬元)" textAlign="center">
                  
    <mx:AdvancedDataGridColumn dataField="arr1" headerText="2010年上半年" />
                  
    <mx:AdvancedDataGridColumn dataField="arr2" headerText="上年同期" />
                  
    <mx:AdvancedDataGridColumn dataField="arr3" itemRenderer="MyImage" headerText="同比增長(%)" />
            
    </mx:AdvancedDataGridColumnGroup>
            
    <mx:AdvancedDataGridColumnGroup id="baiyuan" headerText="百元收入管理費(fèi)用(元)" textAlign="center">
                  
    <mx:AdvancedDataGridColumn dataField="brr1" headerText="2010年上半年" />
                  
    <mx:AdvancedDataGridColumn dataField="brr2" headerText="上年同期" />
                  
    <mx:AdvancedDataGridColumn dataField="brr3" itemRenderer="MyImage" headerText="同比增長(%)" />
            
    </mx:AdvancedDataGridColumnGroup>
            
    </mx:groupedColumns>
    </mx:AdvancedDataGrid>



    這里值得注意的有幾個(gè)屬性:
    headerSortSeparatorSkin:用于定義 AdvancedDataGrid 控件中標(biāo)題的文本和圖標(biāo)部分之間分隔符的外觀。這個(gè)東西主要是用來去掉AdvancedDataGrid多表頭旁邊的一個(gè)線條。
    variableRowHeight:一個(gè)標(biāo)志,指示各行是否可以采用不同的高度。
    更多的樣式請參考...
    http://www.tkk7.com/zhangyuan/archive/2010/08/27/330064.html

    三、Chart雙坐標(biāo)軸
    在Chart標(biāo)簽中實(shí)際上除了dataProvider還有secondDataProvider這樣的屬性,也有類似secondSeries的一系列標(biāo)簽,這些標(biāo)簽都是為雙坐標(biāo)軸服務(wù)的。要做雙坐標(biāo)的圖表其實(shí)很簡單..
    code清單4

    <mx:ColumnChart id="column" height="100%" width="100%" paddingLeft="5" paddingRight="5" fontSize="12"
                 showDataTips
    ="true" dataProvider="{monthData}" secondDataProvider="{monthGrowData}">                
                 
    <mx:horizontalAxis>
                     
    <mx:CategoryAxis categoryField="month"/>
                 
    </mx:horizontalAxis>
                 
    <mx:series>
                     
    <mx:ColumnSeries  xField="month" showDataEffect="{interpolateIn}" yField="arr1" 
                         displayName
    ="本年管理費(fèi)用" fill="{sc1}" stroke="{s1}" />
                     
    <mx:ColumnSeries  xField="month" showDataEffect="{interpolateIn}" yField="arr2" 
                      displayName
    ="去年同期管理費(fèi)用" fill="{sc2}" stroke="{s2}" />
                 
    </mx:series>
                 
                 
    <mx:secondSeries>
                  
    <mx:LineSeries yField="arr1" showDataEffect="{interpolateIn}"/>
                 
    </mx:secondSeries>
    </mx:ColumnChart>

     

    四、Chart中自定義提示(labelFunction)
    在Chart的Series中,有l(wèi)abelFunction屬性,這個(gè)屬性是為了擴(kuò)展提示用的
    code清單5

    <mx:PieChart id="chart" height="100%" width="100%" paddingRight="5" paddingLeft="5" 
     showDataTips
    ="true" dataProvider="{data.data1}">          
     
    <mx:series>
      
    <mx:PieSeries nameField="org" labelPosition="callout" field="hav" labelFunction="showlabel" />
     
    </mx:series>
    </mx:PieChart>


    這里的showlabel其實(shí)就是現(xiàn)實(shí)提示的這個(gè)方法,那么我們在as中定義好這個(gè)方法
    code清單6

    private function showlabel(data:Object, percentValue:Number):String {
     var temp:String
    = (" " + percentValue).substr(0,6);
     
    return data.org + "" + '\n' + "累計(jì)中標(biāo)額: " + data.hav + "(萬元)" + '\n' + temp + "%";
    }


    這里是餅圖的幾個(gè)參數(shù)
    其中通過data.xxx可以取到數(shù)據(jù),percentValue是餅圖自動(dòng)計(jì)算出的百分比數(shù)。

    如果想圖個(gè)簡單,不用那個(gè)百分比可以這樣寫
    code清單7
    private function showlabel(hitData:HitData):String {
     return  "<font size='12'>"+hitData.item.org+"</font><br>"+hitData.item.num2+"%";         
    }

    效果都還不錯(cuò)

    五、Chart的漸變色
    這里的漸變分背景漸變和圖表元素漸變
    先來說下背景漸變:
    經(jīng)理以ColumnChart為例

    code清單7

     

    <mx:fill>
     
    <mx:LinearGradient angle="70">
      
    <mx:GradientEntry color="#02817c" />
      
    <mx:GradientEntry color="#ffffff" />
     
    </mx:LinearGradient>
    </mx:fill>

     

    GradientEntry標(biāo)簽代表漸變的顏色,顯然這里只有從#02817c到#ffffff的漸變效果,那么直接把這個(gè)代碼加在ColumnChart標(biāo)簽里就可以了。

    圖表元素漸變和背景漸變差不多

    code清單8

     

    <mx:ColumnSeries yField="percomplete">
          
    <mx:fill>
           
    <mx:LinearGradient>
            
    <mx:GradientEntry color="#810202" ratio="0"  />
            
    <mx:GradientEntry color="#e30b0b" ratio=".2"  />
            
    <mx:GradientEntry color="#ffffff" ratio=".4"  />
            
    <mx:GradientEntry color="#e30b0b" ratio=".8"  />
            
    <mx:GradientEntry color="#810202" ratio="1"  />
           
    </mx:LinearGradient>
          
    </mx:fill>
         
    </mx:ColumnSeries>


    這樣非常好看

     

     

     

     

     

     

     

     

     

     

     

     

     

    posted on 2010-09-03 11:39 張?jiān)猈on 閱讀(3918) 評論(1)  編輯  收藏 所屬分類: Flex

    評論:
    # re: FLEX中的一些小技巧↑[未登錄] 2010-10-28 18:46 | apple
    謝謝你的分享!學(xué)習(xí)了,關(guān)注!!!!!!!  回復(fù)  更多評論
      

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲娇小性xxxx色| 好大好硬好爽免费视频| 男人免费视频一区二区在线观看 | 亚洲色一色噜一噜噜噜| 免费人成网站在线观看10分钟| 国产免费区在线观看十分钟| 亚洲最大中文字幕无码网站| 亚洲成熟xxxxx电影| 国产亚洲精品看片在线观看| 国产一区二区免费在线| 日韩毛片免费无码无毒视频观看 | 免费看美女被靠到爽的视频| 一区二区免费视频| a级黄色毛片免费播放视频| 美女的胸又黄又www网站免费| 亚洲av无码片区一区二区三区| 亚洲狠狠久久综合一区77777| 337p日本欧洲亚洲大胆裸体艺术 | 特a级免费高清黄色片 | 免费成人福利视频| 久久午夜羞羞影院免费观看 | 亚洲综合熟女久久久30p| 国产成人精品免费视频软件| 成年人网站在线免费观看| 18禁免费无码无遮挡不卡网站| 久久99精品免费视频| 国产在线观看免费视频软件| 一级特黄录像视频免费| 免费无码午夜福利片 | 日本视频免费在线| 免费视频中文字幕| 破了亲妺妺的处免费视频国产| 毛片免费在线视频| 成全影视免费观看大全二| 成年女人午夜毛片免费视频| 免费人成在线视频| 成人av免费电影| 男女啪啪永久免费观看网站| 国产午夜影视大全免费观看| 国产在线观看免费视频播放器| 国产真人无遮挡作爱免费视频|