Flash MX 2004中的新組件對(duì)于我們開(kāi)發(fā)網(wǎng)絡(luò)應(yīng)用程序的確帶來(lái)了很大的方便,無(wú)論是在美觀和易使用方面都得到了不錯(cuò)的評(píng)價(jià)。開(kāi)發(fā)應(yīng)用程序過(guò)程中相信大家使用的比較多的還是基于列表的組件(List、DataGrid、Tree 和 Menu),DataGrid、Tree 和 Menu 組件是 List 類(lèi)的擴(kuò)展.下面引用Flash MX 2004幫助文檔中的一段描述。
關(guān)于 List 類(lèi)的構(gòu)成
List 類(lèi)由行構(gòu)成。這些行顯示滑過(guò)和選區(qū)突出顯示,用作行選區(qū)的點(diǎn)擊狀態(tài),并在滾動(dòng)中扮演重要的角色。除了選區(qū)突出顯示和圖標(biāo)(如節(jié)點(diǎn)圖標(biāo)和Tree 組件的展開(kāi)箭頭)之外,行還包含一個(gè)單元格(或者,如果是 DataGrid,則包含多個(gè)單元格)。在默認(rèn)情況下,這些單元格是實(shí)現(xiàn) CellRenderer API 的 TextField 對(duì)象。但是,您可以讓 List 使用不同的組件類(lèi)作為每一行的單元格。唯一的要求是該類(lèi)必須實(shí)現(xiàn) List 用于與單元格通信的 CellRenderer API。

CellRenderer API 是一組屬性和方法,基于列表的組件(List、DataGrid、Tree 和 Menu)使用它們來(lái)處理和顯示每一行的自定義單元格內(nèi)容。該自定義單元格可以包含預(yù)先建立的組件(如 CheckBox)或您創(chuàng)建的任何類(lèi)。
即我們可以在基于列表的組件中用不同的組件類(lèi)作為每一行的單元格,在單元格中填入更豐富的內(nèi)容。Flash MX 2004幫助文檔中提到要在單元格中填入不同的組件類(lèi)我們必須要把作為填充單元格的類(lèi)實(shí)現(xiàn)CellRenderer API。要實(shí)現(xiàn)CellRenderer API 我們必須要在此類(lèi)文件中實(shí)現(xiàn)如下四個(gè)方法(CellRenderer.getPreferredHeight()、CellRenderer.getPreferredWidth()、CellRenderer.setSize()、CellRenderer.setValue())并且系統(tǒng)將為單元格自動(dòng)指定兩個(gè)方法和一個(gè)屬性(CellRenderer.getCellIndex()、CellRenderer.getDataLabel() 和 CellRenderer.listOwner),以便允許它與基于列表的組件通信。
利用List組件我們可以實(shí)現(xiàn)一個(gè)列表,讓用戶(hù)選擇一個(gè)列表中的某個(gè)或多個(gè)項(xiàng)目,默認(rèn)情況下列表中的項(xiàng)目只能是文字內(nèi)容,如果我們想列表中的每一項(xiàng)是一個(gè)圖片,那是不是會(huì)更讓用戶(hù)感興趣一些。今天我們就用CellRenderer API來(lái)實(shí)現(xiàn)我們的這個(gè)想法。
1、新建一空白文檔(尺寸:200 * 150,背景色設(shè)為#006600),打開(kāi)組件面板,從面板中拖一list組件到舞臺(tái)中并把他的實(shí)類(lèi)名設(shè)為myList,寬高分別為160 * 130。保存為L(zhǎng)ogoAd.fla。

2、在時(shí)間軸面板中新建一圖層取名為 actions,我們將在這一圖層寫(xiě)入我們所需要的所有的actionscript語(yǔ)句。

把不同的內(nèi)容放在不同的圖層并給這些圖層取一個(gè)和內(nèi)容相關(guān)的名字是一個(gè)好習(xí)慣。
3、用選擇工具選擇List組件,下面我們要為L(zhǎng)ist組件設(shè)置一些參數(shù),rowHeight 設(shè)為128,labels 參數(shù)設(shè)置如圖。

同時(shí)請(qǐng)大家準(zhǔn)備好5張jpg格式的圖片,圖片的寬高分別為 128 * 128 ,文件名分別為one,jpg、two.jpg、three.jpg、four.jpg、five.jpg,并且和LogoAd.fla文件在同一目錄。在我的源文件中有這樣的五張圖片,大家可以拿來(lái)使用。
4、在單元格中可以放入不同的組件,要在單元格中顯示圖片,我們可以將loader組件作為單元格的填充,然后在loader組件中裝載圖片。
5、下面我們來(lái)寫(xiě)需要的類(lèi)文件,如上所述要實(shí)現(xiàn)CellRenderer API必須要實(shí)現(xiàn)四個(gè)方法。為了大家更好的理解每個(gè)方法的執(zhí)行過(guò)程,首先在類(lèi)文件中只寫(xiě)出這四個(gè)方法,在函數(shù)體內(nèi)什么都不做。新建一動(dòng)作腳本文件,寫(xiě)下如下代碼:
import?mx.core.UIComponent;
class?LogoAd?extends?UIComponent{
?
?//構(gòu)造函數(shù)********************
?function?LogoAd(){
??trace("構(gòu)造函數(shù)執(zhí)行");
?}
?
?function?setValue(suggested:String,?item:Object,?selected:Boolean)?:Void{
??trace("setValue?方法執(zhí)行");
??trace("suggested?的值是"?+?suggested);
??trace("item?的值是"?+?item);
??trace("selected?的值是"?+?selected);
?}
?
?function?setSize(w:Number,?h:Number){
??trace("setSize?方法執(zhí)行");
????????????????trace(w);
本文轉(zhuǎn)自:http://www.5uflash.com/flashjiaocheng/Flashzujianxuexi/1369.html
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
