技術前沿 剖析Flex4beta效果中的變化
在學習Flex4beta的過程中,難免會遇到Flex4beta效果中的變化,這里和大家分享一下,Flex4beta效果架構改進顯著。雖然Halo效果只能用于不基于UIComponent的控件,Spark效果可用于任何目標,包括框架中的新圖形基元。所有這些效果類都包含在spark.effects.*package中。
Flex4beta效果中的變化
Flex4beta效果架構改進顯著。雖然Halo效果只能用于不基于UIComponent的控件,Spark效果可用于任何目標,包括框架中的新圖形基元。所有這些效果類都包含在spark.effects.*package中。由于Spark效果可用于Halo組件、Spark組件和圖形基元,Adobe建議您在今后的應用程序中使用Spark效果類。
我并未贅述這一問題,因為您可以通過ChetHaase的AdobeFlex4SDKbeta中的效果一文了解效果類中新增功能的更多詳細信息。
布局中的變化
之前的Flex版本在各個控件中定義組件和容器布局。因此,List、TileList和HorizontalList等組件都共享布局以外的相同功能。而它們的布局邏輯仍在這些組件類中進行定義。在Flex4beta中,布局已與組件剝離開來。現在,Application、List、ButtonBar和Panel等Spark組件可以通過聲明方式定義布局。在所有組件中,Group類負責管理包含,而Group的子代的布局則委派到相關的布局對象。布局除了FXG圖形基元,還支持Spark和Halo組件。甚至可以在運行時更改布局。
作為開發人員,您可以輕松編寫自定義布局并將它們切入或切出個別組件。以下是定義垂直List、水平List和拼貼List的一個示例。
垂直List(SparkList的默認布局是VerticalLayout):
- <s:List/>
水平List:
- <s:List><s:layout><s:HorizontalLayout/></s:layout>
- </s:List>
拼貼List:
- <s:List><s:layout><s:TileLayout/></s:layout></s:List>
如前所述,Flex4beta架構旨在為開發人員提供構造塊,供他們根據需要選擇功能。默認情況下,關閉虛擬化和滾動。要增加Group上的滾動欄選項并開啟虛擬化,您需要:
1)在布局對象上將useVirtualLayout設為true2)將一個Scroller組件添加到Group。
以下是對SparkPanel使用虛擬化和滾動的一個示例:
- <s:Paneltitles:Paneltitle="HorizontalPanel"width="300"
- height="220"left="20"top="20">
- <s:Scrollerwidths:Scrollerwidth="100%"height="100%">
- <s:Group><s:layout>
- <s:HorizontalLayoutuseVirtualLayouts:HorizontalLayoutuseVirtualLayout="true"/>
- </s:layout><s:TextInput/>
- <s:Buttonlabels:Buttonlabel="clear"/><mx:DateChooser/>
- <s:Buttonlabels:Buttonlabel="submit"/>
- </s:Group>
- </s:Scroller>
- </s:Panel>
有關Flex4beta中的所有布局增強(包括對變換的更好支持)的更多信息,請參閱Spark布局規范*。
【編輯推薦】