renderer (渲染器),或item renderer,是flex 框架一個功能強大的特性,它的使用頻率很高,通過它您可以用自定義的組件顯示數(shù)組或集合的數(shù)據(jù)。渲染器可用于DataGrid, List, Tile,和ComboBox 這些數(shù)據(jù)容器。渲染器可以為這些容器的數(shù)據(jù)源中的每一個元素的數(shù)據(jù)設(shè)置渲染樣式(即顯示形式),從而控制這些數(shù)據(jù)的顯示與更新。在Flex 的應(yīng)用當中會經(jīng)常用到表格或列表,搞清楚如何更好的、更有效的顯示和編輯這些數(shù)據(jù)是非常有用的。
如何使用item renderers 和item editors (單項的渲染器和單項的編輯器)關(guān)鍵在于了解item renderers 與包含他的組件(即父組件)之間的關(guān)系。所有item renderers 都有一個”data”屬性,這個屬性是由dataProvider 中與itemRenderer 所在行相應(yīng)的記錄所設(shè)定的。如何顯示這些數(shù)據(jù)完全取決于開發(fā);例如用戶可以使用“drop-in”的item renderers 也可以用自定義的組件。item renderers 允許讓用戶修改data 屬性中的數(shù)據(jù),但這一操作會自動修改父組件中數(shù)據(jù)源的數(shù)據(jù)。(注: drop-in 是指一些己實現(xiàn)IDropInListItemRenderer 接口的組件,現(xiàn)有組件有: Button CheckBox Image Label Text 等。用戶自己實現(xiàn)IDropInListItemRenderer 的組件, 也可以算是drop-in 。如果想深研,大家可以看:http://livedocs.adobe.com/flex/3/html/help.html?content=cellrenderer_5.html 如果不想深研,這里可以理解成Button CheckBox 等這些flex 自帶組件很多網(wǎng)上的文章直譯為下拉式組件,是不對的。)
item editor(編輯器)的功能又是與前者截然不同的,基于mx.controls.list 類的一個list當它的item renderer 組件被點擊后,會實例化一個editor item renderer 組件。當這個editor失去焦點時,list 會試圖去讀取editorDataField 屬性并與之前的data 值比較,如果有變化就把list 的數(shù)據(jù)源更新,并把itemEditor 消毀并用itemRender 替換。這意味著list 或DataGrid的行始終只能有一個itemRenderer。(我們在實際應(yīng)用時,可能見不到item editor,那是因為list 的編輯狀態(tài)未打開。)
目錄
7.1創(chuàng)建自己的渲染器
7.2.使用ClassFactory 生成渲染器
7.3.訪問設(shè)置自己渲染器的組件
7.4.創(chuàng)建一個簡單的組件作為渲染器和編輯器
7.5.創(chuàng)建一個Item Editor,它可以處理含有復(fù)雜數(shù)據(jù)類型的Data
7.6.使用項渲染器把SWF對象作為一個菜單項顯示
7.7.用一個復(fù)選框渲染器選擇DataGrid 列
7.8.為DataGrid創(chuàng)建一個獨立的復(fù)選框項渲染器
7.9.為渲染器設(shè)置高效圖像
7.10.為項渲染器和項編輯器應(yīng)用運行時樣式
7.11.為項編輯器應(yīng)用狀態(tài)和變換
7.12.創(chuàng)建一個帶復(fù)選框的Tree控件
7.13.改變List 中渲染器的大小
新聞熱點
疑難解答