自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Flex渲染機(jī)制中外部Flex渲染器用法指導(dǎo)

開發(fā) 后端
本文向大家介紹一下Flex渲染機(jī)制中的外部Flex渲染器概念,這種Flex渲染器的MXML標(biāo)記和ActionScript代碼與使用該渲染器的列表位于同一文件中。

你對(duì)Flex渲染機(jī)制是否熟悉,這里和大家分享一下Flex渲染機(jī)制中外部Flex渲染器的概念,相信本文介紹一定會(huì)讓你有所收獲。

Flex渲染機(jī)制之外部Flex渲染器

這種Flex渲染器的MXML標(biāo)記和ActionScript代碼與使用該渲染器的列表位于同一文件中。代碼與文件中的其余代碼內(nèi)聯(lián)。您應(yīng)該還記得我說(shuō)過,應(yīng)該將內(nèi)聯(lián)渲染器視作單獨(dú)的類。事實(shí)上,Flex編譯器提取這些內(nèi)聯(lián)代碼并為您創(chuàng)建類。內(nèi)聯(lián)渲染器的優(yōu)勢(shì)在于代碼與列表位于同一位置,但是如果渲染器變得復(fù)雜時(shí),這又變成了劣勢(shì)。本文中我將向您展示如何自己創(chuàng)建類。

將Flex渲染器提取到一個(gè)外部文件有幾個(gè)優(yōu)勢(shì):

◆渲染器可輕松用于多個(gè)列表中

◆代碼更容易維護(hù)

◆可以使用FlexBuilder的“設(shè)計(jì)”視圖草擬出最初的渲染器

MXML渲染器

在第1部分中,您看到有一個(gè)復(fù)雜的渲染器用于DataGrid:

  1. <mx:DataGridColumnheaderTextmx:DataGridColumnheaderText="Title"dataField="title"> 
  2. <mx:itemRenderer> 
  3. <mx:Component> 
  4. <mx:HBoxpaddingLeftmx:HBoxpaddingLeft="2"> 
  5. <mx:Script> 
  6. <![CDATA[  
  7. overridepublicfunctionsetdata(value:Object):void{  
  8. super.data=value;  
  9. vartoday:Number=(newDate()).time;  
  10. varpubDate:Number=Date.parse(data.date);  
  11. if(pubDate>today)setStyle("backgroundColor",0xff99ff);  
  12. elsesetStyle("backgroundColor",0xffffff);  
  13. }  
  14. ]]> 
  15.  
  16. </mx:Script> 
  17. <mx:Imagesourcemx:Imagesource="{data.image}"width="50"height="50" 
  18. scaleContent="true"/> 
  19. <mx:Textwidthmx:Textwidth="100%"text="{data.title}"/> 
  20. </mx:HBox> 
  21. </mx:Component> 
  22.  
  23. </mx:itemRenderer> 
  24. </mx:DataGridColumn> 
  25.  

 ◆Flex渲染器基于HBox,包含一個(gè)Image和一個(gè)Text,并且根據(jù)項(xiàng)目記錄的pubDate字段設(shè)置背景色??梢允褂靡韵虏襟E將同一Flex渲染器編寫為一個(gè)外部文件:

如果您使用FlexBuilder,請(qǐng)新建一個(gè)MXMLComponent文件(我將我的文件命名為GridColumnSimpleRenderer,您可以隨意命名),將根標(biāo)記設(shè)置為HBox。不必?fù)?dān)心大小。

如果您只使用SDK,請(qǐng)新建一個(gè)MXML文件(將它命名為GridColumnSimpleRenderer.mxml),將根標(biāo)記設(shè)置為HBox。
在文件打開時(shí),復(fù)制<mx:HBox>與</mx:HBox>之間的所有內(nèi)容,但不要復(fù)制那些標(biāo)記,因?yàn)槲募幸延兴鼈儭=Y(jié)果應(yīng)該如下:

  1. <?xmlversionxmlversion="1.0"encoding="utf-8"?> 
  2. <mx:HBoxxmlns:mxmx:HBoxxmlns:mx="http://www.adobe.com/2006/mxml" 
  3. width="400"height="300"> 
  4. <mx:Script> 
  5. <![CDATA[  
  6. overridepublicfunctionsetdata(value:Object):void{  
  7. super.data=value;  
  8. vartoday:Number=(newDate()).time;  
  9. varpubDate:Number=Date.parse(data.date);  
  10. if(pubDate>today)setStyle("backgroundColor",0xff99ff);  
  11. elsesetStyle("backgroundColor",0xffffff);  
  12. }  
  13. ]]></mx:Script> 
  14. <mx:Imagesourcemx:Imagesource="{data.image}"width="50"height="50" 
  15. scaleContent="true"/> 
  16. <mx:Textwidthmx:Textwidth="100%"text="{data.title}"/> 
  17. </mx:HBox> 
  18.  

 保存此文件。

現(xiàn)在修改DataGridColumn定義,方法是刪除內(nèi)聯(lián)渲染器并將它替換為以下內(nèi)容:

  1. <mx:DataGridColumnheaderTextmx:DataGridColumnheaderText="Title"dataField="title"  
  2. itemRenderer="GridColumnSimpleRenderer"> 

現(xiàn)在運(yùn)行這個(gè)應(yīng)用程序。您會(huì)大吃一驚。因?yàn)樾泻芨?。這是因?yàn)殇秩酒魃系膆eight="300"。

◆決定Flex渲染器的寬度和高度

List控制始終設(shè)置渲染器的寬度。本例中將忽略明確的width="400"。您應(yīng)當(dāng)編寫自己的渲染器,假設(shè)用戶更改列或列表寬度是寬度會(huì)更改。

高度則是另一回事。如果列表設(shè)置了明確的rowHeight,它會(huì)將這個(gè)高度強(qiáng)加到各行,忽略您對(duì)渲染器設(shè)置的任何高度。但是,如果您將列表的variableRowHeight屬性設(shè)置為true,則列表會(huì)慎重考慮渲染器的高度。在本例中,高度明確設(shè)置為300,所以各行為300像素高。

要修復(fù)它,請(qǐng)從渲染器文件中刪除明確高度,應(yīng)用程序即可正確運(yùn)行。

【編輯推薦】

  1. 解析Flex渲染器的使用
  2. Flex主題創(chuàng)建及支持的樣式設(shè)置方式
  3. 全面認(rèn)識(shí)Flex應(yīng)用程序的六大元素
  4. 揭開Flex正則表達(dá)式的神秘面紗
  5. Flex數(shù)據(jù)綁定及其使用頻繁的幾種情況 
責(zé)任編輯:佚名 來(lái)源: csdn.net
相關(guān)推薦

2010-08-13 11:02:27

Flex渲染器

2010-07-27 15:28:02

Flex DataBi

2010-07-29 09:44:17

Flex編程

2010-08-05 10:08:06

Flex效果

2010-07-28 10:38:29

Flex開源框架

2010-07-30 10:02:40

Flex驗(yàn)證控件

2010-08-10 11:08:32

Flex外部樣式表

2010-08-06 10:15:35

Flex綁定

2010-08-06 09:45:50

Flex事件機(jī)制

2010-07-28 10:48:48

FlexReport開

2010-08-05 13:44:12

Flex布局

2010-08-05 09:05:14

Flex Button

2010-07-27 13:53:15

Flex ComboB

2010-08-06 10:32:49

Flex數(shù)據(jù)類型

2010-08-13 13:46:04

Flex效果組件

2010-08-04 14:07:59

Flex事件機(jī)制

2009-07-15 13:48:26

Swing模型和渲染器

2014-06-18 10:34:41

Android字體渲染器OpenGL ES

2010-08-09 15:09:27

Flex數(shù)據(jù)訪問

2010-07-27 14:44:23

Flex Array
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)