FMX2K4: 在 ListBox 中應(yīng)用HTML 原文地址: http://www.darronschall.com/weblog/archives/000067.cfm#more 翻譯:qhwa 我目前正在做一個(gè)項(xiàng)目,使用了Flash MX 2004。情況一直很好,直到有一次我想令list中的一部分加粗。我原以為很簡(jiǎn)單,就像改變label一樣,插入html標(biāo)簽就行了,但是生活哪有那么簡(jiǎn)單:) 在做了一點(diǎn)閱讀和挖掘之后,我終于找到了一種方法,就是今天我要和你分享的。
下面這個(gè)就是最終的結(jié)果,你可以輕松的創(chuàng)建一個(gè)。
這個(gè)效果是通過(guò)創(chuàng)建一個(gè)自定義cellRenderer,而不是ListBox默認(rèn)的處理。 一個(gè)cellRenderer就是任意的一個(gè)class,這個(gè)class要實(shí)現(xiàn)Cell Renderer API,被用來(lái)在基于列表的組件(List,DataGrid,Tree和Menu)顯示一行的內(nèi)容。你可以在幫助中找到更多關(guān)于Cell Renderers的信息 Using Components -> Components Dictionary -> CellRenderer API
按下面的步驟創(chuàng)建上面的例子
1.下載我的LabelCellRenderer ,解壓縮到合適的路徑(.fla所在的路徑最好),保持壓縮包中的文件目錄
2.插入一個(gè)新的MC符號(hào),命名為"LabelCellRenderer",不加引號(hào),這是個(gè)空的符號(hào)
3.在庫(kù)面板的LabelCellRenderer上單擊右鍵,從菜單中選擇“l(fā)inkage...”。點(diǎn)擊“Export for ActionScript”,使用“com.darronschall.LabelCellRenderer ”作為AS2.0的類。而且確定“LabelCellRenderer ”作為ID。
4.添加一個(gè)Label組件到庫(kù)中。這是必要的,因?yàn)長(zhǎng)abelCellRenderer用他來(lái)顯示。
5.拖動(dòng)一個(gè)ListBox到舞臺(tái)上,給他一個(gè)實(shí)例名稱。我使用“myList”,在這個(gè)例子中調(diào)整他的大小到250×90。
6.復(fù)制粘貼下面的代碼,以使用LabelCellRenderer
// 普通的事件處理 function change(eventObj) { trace(eventObj.target.selectedItem.data); } // 填充ListBox - 注意label字符串中的HTML代碼 myList.addItem({label:"<b>Apples</b> ... <font color=\"#FF0000\">are <u>red</u></font>", data:"apple"}); myList.addItem({label:"<b>Oranges</b> ... <font color=\"#FF9900\">are <u>orange</u></font>", data:"orange"}); myList.addItem({label:"<b>Bananas</b> ... <font color=\"#FFCC00\">are <u>yellow</u></font>", data:"banana"}); myList.addItem({label:"<b>Pears</b> ... <font color=\"#009900\">are <u>green</u></font>", data:"pear"}); // 當(dāng)內(nèi)容不足以顯示滾動(dòng)條時(shí),關(guān)閉這個(gè)討厭的東西 myList.vScrollPolicy = "off"; // 使用 LabelCellRenderer 來(lái)顯示 listBox中的label,并允許使用html myList.cellRenderer = "LabelCellRenderer"; myList.addEventListener("change", this); // 原文里改變了組件樣式,我發(fā)現(xiàn)不改反而更漂亮,呵呵(qhwa注) //_global.style.setStyle("themeColor", 0xCCCCCC);
這樣應(yīng)該可以了,祝你好運(yùn)嘍~ 希望你明白了怎樣使用一個(gè)CellRenderer有效地顯示你需要地東西,而不是去鉆研List組件的內(nèi)部程序。
出處:藍(lán)色理想
責(zé)任編輯:qhwa
◎進(jìn)入論壇Flash專欄 版塊參加討論