ActionScript 3.0应用程序最终能编译为一个SWF文件。为了便于网络传播,声音、视频、数据都会集成在SWF文件中。打包后的SWF文件组件齐备,不会因为传播过程而遗失文件。数据的保密性也更强。但如果数据量比较大,SWF文件会变得很臃肿。由于集成在SWF内部,数据的修改和替换很困难。
Flash和FlexBuilder开发的SWF程序可以读取外部数据。根据具体情况,可以选择性的将数据置于SWF文件之外。
当数据与SWF分离之后,主程序的体积会更小,传输会更快。客户端可以根据需要,加载所需的内容,数据的利用率更高。分散式存储的数据便于修改和替换。通过操作系统的文件管理应用程序,可以对数据进行搜索、遍历、重命名等操作。也可以通过第三方的文本编辑器,修改存储配置信息的文档,调整整个SWF应用程序的执行行为。
从技术的角度看,SWF执行文件之外的文件就是单纯的数据,SWF文件通过与外部交换数据,获得新的信息、指令和资源。但是从应用的角度看,数据的不同种类产生了丰富的程序功用:
(1)视频数据为Flash增加了视频播放功能,使SWF成为网上电影放映机;
(2)音频数据不仅为动画增加了声音,还令Flash具有了音乐播放和语音通话的能力。
(3)文本和XML数据可以灵活存储各种信息内容。使用它们可以创建灵活多变的应用程序。
(4)摄像头和麦克风提供的动态数据流,可以让Flash应用实现许多时尚而且实用的功能。
(5)图像文件的外置不仅使SWF具备了创建动态画廊的能力,还可以根据网络带宽和终端设备的实际情况,显示不同精度的图像。
(6)分离存储的字符文件,为应用提供灵活的内容控制和地区控制。
除此之外,由不同种类的外部数据产生的衍生功能还有很多。为了实现这些诱人的功能,开发者就必须掌握如何读取、分析和操作外部数据。