转贴:http://www.webstudio.com.cn/blog/?p=526
众所周知,flash cs3.0的组件是由gskinner小组开发的.gskinner的Grant在Fitc 2007上演讲的关于flash cs3 组件的内容.下面文章是来自Grant (16 hits) 的fitc 2007上的演讲,尽管我对flash 的组件一直没有好感,但是从flash cs3开始,应是看到了一些改变.此文应说是很有助于我们了解flash cs3.0 components
Grant的演讲主要议题是:
1.文件大小和性能: 减小了组件的容量大小,降低了cpu/内存的损耗.
2.容易更换皮肤和定制风格: 只需要在工作区中就可以轻易的更改组件的外观
3.扩展性: flash cs3组件架构更容易扩展.
4.可移植性: 可以实现as2.0到as3.0及as3.0 到flex的移值.
文件大小和性能大小:
由原来v2组件的大小,降低了20-45%
flash cs3组件约10k大小,小于v2组件的20k-17k,更小于flex组件的110k
性能:
低cup占有率,高性能
更得益于ActionScript 3.0性能.
带来一些新特色如event model. strong typing, Dictionary.
不在使用递归查找.
*具说演示时同时选中10万条list中的数据,滚动条滚动的仍相当的平滑
皮肤和风格:简单而有效
可视皮肤
操作过程:
1.将组件拖到场景中
2.双击场景中的组件
3.编辑它的原始元素.
4,刷新,重复
技巧,你可以使用图形符号,然后使用scale9功能来共享组件所需的素材.
限制:
没有实时预览
如果你喜欢使用代码,也可以使用代码来更改皮肤
操作过程:
1.绑定一个类到皮肤影片剪辑上.
2.在皮肤影片剪辑的时间线上书写代码.
风格 // 改变单一实例风格 // 改变所有组件风格 //针对某一特定组件实例应用风格
风格可以让你应用皮肤,文本格式或是使用其它的风格应用于实例,或所有的组件.
使用方法:import fl.managers.StyleManager;
myInstance.setStyle("styleName", styleValue);
StyleManager.setStyle("styleName", styleValue);
StyleManager.setComponentStyle(component, "styleName",
风格不再会因为递归查询而影响到效率.因此你可在运行状态设置风格而不会造成对性能的影响.
实例做为皮肤
比较高级的特性,你可以使用某一实例来做为组件皮肤.比如使用动态载入的内容来做为一个icon皮肤.需要注意的是你只能针对单独的组件实例应用实例来做为皮肤.
TileList, DataProvider and CellRenderer
TileList : 一个新的数据列表组件.
DataProvider
不再需要先将数据混合至数组中,而是强制使用列表,使用同一个DataProvider 可以更新多个数据列.// 数据可以是数组,xml或是其它
myList.dataProvider = new DataProvider(data);
方法: addItem, removeItem, replaceItem, merge, invalidate, sort, toArray, etc.
事件: DataChange和PreDataChange中包含有许多变化类型的信息和受影响的索引.
CellRenderer public class MyRenderer extends CellRenderer // ...
扩展CellRenderer类来创建你自已的自定义cell Rendererimport fl.controls.listClasses.CellRenderer;
{
}
cs3组件的不足
1.没有了data binding和data组件.
2.不在使用css 定义风格而是简单的使用style model.
3.没有了tree 和 accordion
4.Api差异化(一些组件的接口与flex 2并不相同).
ps:以上只是部分内容.详细内容请看Grant fitc2007 talk (29 hits)
