- 本站文章除注明转载外,均为本站原创或者翻译。
- 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商;
- 本站部分原创和翻译文章提供markdown格式源码,欢迎使用文章源码进行转载;
- 本文标题:在Flex或纯AcitonScript项目中使用Flash组件
- 本文链接:http://zengrong.net/post/1192.htm
2010-12-19更新: 包含Alert、MenuBar等更多组件的Flash组件
2011-08-21更新:加入Flash CS 5.5 的UI组件编译的SWC,原因见正文。
在纯AS环境下做开发的时候,往往需要一些简单的UI组件支持,例如按钮、复选框等等。这时候就需要选择或者自行开发一套常用的UI组件库,我在 Flash&Flex大全中介绍了一些可以用于纯AS环境开发的第三方组件库,但一直没有介绍Flash的组件。现在看来,在纯AS项目中使用Flash的组件,至少有以下三个好处:
- 有完善的中文文档;
- 有大量参考资料;
- 有丰富的免费皮肤;
- 生成的文件较小,只有使用了的组件才会被导出。
至于Flex,它已经有了完善且更加高级的组件库,而且也包含上面1-3条优点,所以采用Flex框架开发,当然还是用Flex组件比较好。这里只是提供一种方法罢了。
Flash组件位于安装目录下的“Common\Configuration\Components\”目录中(Flash CS3则在“zh_cn\Configuration\Components\“)。其中“User Interface.fla”为源文件,只需要用Flash打开这个文件,在发布设置中选中“导出SWC”然后导出,就可以得到一个119KB的SWC文件。将其复制到AS项目的“libs”文件夹即可,也可以直接在Flash Builder中的AS项目的属性中设置“Actionscript构建路径-库路径-添加SWC文件夹/添加SWC“。
Flash CS3/CS4/CS5所带的UI组件是完全一样的。UI组件的源码在“User Interface.fla”的库面板中的“Component Assets/_private/ComponentShim”中,这是一个编译剪辑,因此看不到源码。它们的真实源码在“Common\Configuration\Component Source\ActionScript 3.0\User Interface\”文件夹中,完全由AS3写成。
从CS5开始,由于增加了新的FTE文本引擎和TLF框架,Flash也提供了一个TLFTextField组件。相应的,UIScrollBar.scrollTarget也发生了改变。原来的类型是TextField,现在可以接受TextField和FTETextField。因此,原来提供的SWC中的UIScrollBar组件就不能支持FTETextField。因此这里提供了Flash CS 5.5版本的UI组件。
FlashCS3提供的UI组件编译的SWC下载(不支持FTETextField):
FlashUI.swc (116.5 KiB, 1,932 hits)
FlashCS5.5提供的UI组件编译的SWC下载(支持FTETextField):
FlashUI5.5.swc (124.1 KiB, 1,056 hits)
在纯AS3项目中使用,还需要这个SWC提供FTETextField支持:
tlfruntime.swc (195.2 KiB, 922 hits)