中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁(yè) > 技術(shù)文檔 > 多媒體制作 > 在List組件中使用渲染器
了解在Flash中的編程工作 回到列表 制作一個(gè)全功能的FLV播放器
 在List組件中使用渲染器

作者:Liu21st 時(shí)間: 2004-07-19 文檔類型:轉(zhuǎn)載 來(lái)自:

在網(wǎng)上看過(guò)很多人轉(zhuǎn)載darronschall的 LabelCellRenderer 例子,其中有個(gè)錯(cuò)誤,把myList.cellRenderer = "LabelCellRenderer";這行代碼放到了注釋里面去了,但是到處轉(zhuǎn)載的依然沒(méi)有修正(其實(shí)原文是正確的)。

其實(shí)看了這個(gè)我們并沒(méi)有求甚解,要知道授人予魚(yú),不如授人予漁。我們?cè)賮?lái)看下為什么通過(guò)cellrenderer可以給List、DataGrid、Tree 和 Menu 組件以及其它列表組件增強(qiáng)單元格內(nèi)容顯示。

我們首先要從List組件開(kāi)始分析,List 類至關(guān)重要。DataGrid、Tree 和 Menu 組件是 List 類的擴(kuò)展。

List 類由行構(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 使用不同的組件類作為每一行的單元格。唯一的要求是該類必須實(shí)現(xiàn) List 用于與單元格通信的 CellRenderer API。

List 類使用一種非常復(fù)雜的算法進(jìn)行滾動(dòng)。一個(gè)列表只會(huì)列出它一次能顯示的最多行數(shù),超出 rowCount 屬性的值的項(xiàng)目根本不會(huì)獲得行。在列表滾動(dòng)時(shí),它會(huì)將所有行上下移動(dòng)(取決于滾動(dòng)方向)。然后,列表將重復(fù)使用滾出視圖的行;列表會(huì)重新初始化這些行,并使用它們作為正在滾入視圖的新行,方法是將舊行的值設(shè)置為視圖中的新行,然后將舊行移到新項(xiàng)目滾入視圖的位置。

要使用 CellRenderer API,您必須編寫(xiě)包含下面四個(gè)方法的類

CellRenderer.getPreferredHeight() 返回單元格的首選高度
CellRenderer.getPreferredWidth() 返回單元格的首選寬度
CellRenderer.setSize() 設(shè)置單元格的寬度和高度
CellRenderer.setValue() 設(shè)置要顯示在單元格中的內(nèi)容

基于列表的組件將使用該類與單元格通信。這就是我們看到的darronschall定義的LabelCellRenderer類。

系統(tǒng)將為單元格自動(dòng)指定兩個(gè)方法和一個(gè)屬性

CellRenderer.getCellIndex() 返回包含單元格渲染器數(shù)據(jù)字段的名稱的字符串
CellRenderer.getDataLabel() 返回包含兩個(gè)字段(columnIndex 和 rowIndex)的對(duì)象,這兩個(gè)字段指明單元格的位置
CellRenderer.listOwner 指向包含單元格的列表的引用
以便允許它與基于列表的組件通信。例如,假設(shè)單元格內(nèi)包含一個(gè)復(fù)選框,該復(fù)選框?qū)е滦性趩螕魰r(shí)被選中。單元格渲染器需要引用包含它的基于列表的組件,以便調(diào)用基于列表的組件的 selectedIndex 屬性。同時(shí),單元格需要知道它當(dāng)前正在渲染的項(xiàng)目索引,以便能夠?qū)?selectedIndex 設(shè)置為正確的編號(hào);單元格可以使用 CellRenderer.listOwner 和 CellRenderer.getCellIndex() 達(dá)到此目的。您不需要實(shí)現(xiàn)這些 API;在將單元格放到基于列表的組件內(nèi)時(shí),單元格將自動(dòng)接收這些 API。
我們來(lái)看下LabelCellRenderer類實(shí)現(xiàn)的這幾個(gè)方法代碼:

function createChildren(Void) : Void { 
    label = createObject("Label", "label", 1, { styleName:this, owner:this });
    label.html = true;
    size();
}
 
// setSize is implemented by UIComponent and calls size(), after setting
// __width and __height
function size(Void) : Void { 
    label.setSize(__width, __height);
    // make sure the label field is in the top-left corner 
    // of the row
    label._x = 0;
    label._y = 0;
}
 
function setValue(str:String, item:Object, sel:Boolean) : Void { 
    // hide the label if no data to display
    label._visible = (item!=undefined);
    // this line actually sets htmlText 
    label.text = item.label;
}
 
function getPreferredHeight(Void) : Number { 
    // this is the height with the default font, you might
    // need to adjust this to suit your needs
    return 18; 
}
 
function getPreferredWidth(Void) : Number { 
    // default to the width of the listbox
    return __width;
}

其中用來(lái)顯示html標(biāo)記的就是setValue方法了。
我們定義了這個(gè)類后,剩下就是對(duì)List組件來(lái)設(shè)置新的單元格渲染器了。使用下面的代碼:
1 : //LabelCellRenderer就是指定單元格渲染的連接ID
2 : myList.cellRenderer = "LabelCellRenderer";

也許看完這些,你可以做出更好效果的渲染器來(lái)。要注意的是,只有flashMX2004的List組件才支持。

出處:
責(zé)任編輯:
qhwa

◎進(jìn)入論壇Flash專欄版塊參加討論

相關(guān)文章 更多相關(guān)鏈接
Flash 酷站獵手
中文ID3亂碼問(wèn)題MX解決方案
用AS2解決中文ID3的亂碼
Flash常用效果-移動(dòng)模糊效果
Flash MX 2005 制作環(huán)境預(yù)覽
作者文章
FCS閱讀筆記:良好的編程習(xí)慣
在List組件中使用渲染器
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門(mén)搜索:CSS Fireworks 設(shè)計(jì)比賽 網(wǎng)頁(yè)制作 web標(biāo)準(zhǔn) 用戶體驗(yàn) UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點(diǎn)最新 站點(diǎn)最新列表
周大福“敬•自然”設(shè)計(jì)大賽開(kāi)啟
國(guó)際體驗(yàn)設(shè)計(jì)大會(huì)7月將在京舉行
中國(guó)國(guó)防科技信息中心標(biāo)志征集
云計(jì)算如何讓安全問(wèn)題可控
云計(jì)算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會(huì)
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅(jiān)的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計(jì)大賽
欄目最新 欄目最新列表
淺談JavaScript編程語(yǔ)言的編碼規(guī)范
如何在illustrator中繪制臺(tái)歷
Ps簡(jiǎn)單繪制一個(gè)可愛(ài)的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡(jiǎn)單的作品展示頁(yè)面
CSS定位機(jī)制之一:普通流
25個(gè)最佳最閃亮的Eclipse開(kāi)發(fā)項(xiàng)目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨(dú)家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點(diǎn)的原創(chuàng)文章,但原作者和來(lái)自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來(lái)自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請(qǐng)不要盜鏈到本站,且不準(zhǔn)打上各自站點(diǎn)的水印,亦不能抹去我站點(diǎn)水印。

特別注意:本站所提供的攝影照片,插畫(huà),設(shè)計(jì)作品,如需使用,請(qǐng)與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請(qǐng)與我們聯(lián)系,我們將立即刪除修改。

您的評(píng)論
用戶名:  口令:
說(shuō)明:輸入正確的用戶名和密碼才能參與評(píng)論。如果您不是本站會(huì)員,你可以注冊(cè) 為本站會(huì)員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯(cuò)誤,請(qǐng)用報(bào)告錯(cuò)誤,以利文檔及時(shí)修改。
不評(píng)分 1 2 3 4 5
注意:請(qǐng)不要在評(píng)論中含與內(nèi)容無(wú)關(guān)的廣告鏈接,違者封ID
請(qǐng)您注意:
·不良評(píng)論請(qǐng)用報(bào)告管理員,以利管理員及時(shí)刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國(guó)的各項(xiàng)有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評(píng)論管理人員有權(quán)保留或刪除其管轄評(píng)論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評(píng)論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評(píng)論文檔 | 報(bào)告錯(cuò)誤  
專業(yè)書(shū)推薦 更多內(nèi)容
網(wǎng)站可用性測(cè)試及優(yōu)化指南
《寫(xiě)給大家看的色彩書(shū)1》
《跟我去香港》
眾妙之門(mén)—網(wǎng)站UI 設(shè)計(jì)之道
《Flex 4.0 RIA開(kāi)發(fā)寶典》
《贏在設(shè)計(jì)》
犀利開(kāi)發(fā)—jQuery內(nèi)核詳解與實(shí)踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2