在学习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布局规范*。
【编辑推荐】