Flex3 中Flex SDK和组件的改进的地方很多,加入了很多新的类/组件/功能. 例如AdvancedDataGrid, 新的集合类,深层链接接口(BrowserManager), 资源包,动态本地化,支持容器的Flex Component Kit for Flash CS3. 这些新增功能加强了和AJAX的整合,提供了高级视觉效果和对复杂的资源管理、本地化。
AdvancedDataGrid:
mx.collections.HierarchicalData
mx.collections.Grouping
mx.collections.GroupingCollection
mx.collections.GroupingField
mx.collections.HierarchicalCollectionView
mx.collections.HierarchicalCollectionViewCursor
mx.collections.ListCollectionView
mx.collections.SummaryField
mx.collections.SummaryObject
mx.collections.SummaryRow
下面是AdvancedDataGrid一些图片。
Flex3的深层链接组件(BrowserManager)提供了管理URL中的数据的功能。它是通过html Achor(#)来实现的。BrowserManager类可以把flex程序绑定到URL中的数据和监听URL的改变。这个功能使得flex可以通过URL来持续化,同时提供了一种新的给flex程序输入参数的方法。新加入的类包括
mx.events.BrowserChangeEvent;
mx.managers.IBrowserManager;
mx.managers.BrowserManager;
mx.utils.URLUtil;
Application.historyManagementEnabled
这个功能最酷的地方是你可以把它用到很多其它场合。比如你可以用它来同步URL和Flex程序的状态。
资源包和动态本地化
MXML编译器能创建资源包文件(swf文件)。这些资源包可以从java .properties文件中,用类似下面的属性表来生成。
YES_LABEL= Yes
DATE_FORMAT = MM/DD/YYYY
AGE_OF_CONSENT = 16
SOME_FLAG = true
这些数据会被编译成swf文件中的Object。它们被压缩了并能够快速载入。最要的是生成的数据可以动态的创建和载入到ResourceManager中。使用如下
//createa resource bundle in AS3 and add to Resource Manager
var newBundle:ResourceBundle = new ResourceBundle("fr_FR","myBundle");
newBundle.content["OPEN"] = "Ouvrir";
newBundle.content["CLOSE"] = "Ferme";
resourceManager.addResourceBundle(newBundle);
在程序中绑定到资源很简单。写程序时,如果你绑定到资源包中的值,那么改资源包所有字符串都会编译和加载。
绑定到资源包
.5
用ActionScript 3读从资源包取带类型的数据
fooBundle.getNumber("AGE_OF_CONSENT")
从URL载入资源包
resourceManager.loadResourceBundles(url);
Flex Component Kit for Flash CS3:
Flexcomponent kit for Flash CS3目前已经发布了。Flex3对其进行了改进,加入对容器和多种动画的支持