ActionScript(Flex)的加载类是Loader。
我们先看一下其定义:
包 | flash.display |
类 | public class Loader |
继承 | Loader DisplayObjectContainerInteractiveObjectDisplayObjectEventDispatcherObject |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
Loader 类可用于加载 SWF 文件或图像(JPG、PNG 或 GIF)文件。 使用
load()
方法来启动加载。 被加载的显示对象将作为 Loader 对象的子级添加。
使用 URLLoader 类加载文本或二进制数据。
Loader 类会覆盖其继承的以下方法,因为 Loader 对象只能有一个子显示对象 -- 其加载的显示对象。 调用以下方法将引发异常:addChild()
、addChildAt()
、removeChild()
、removeChildAt()
和 setChildIndex()
。 要删除被加载的显示对象,必须从其父 DisplayObjectContainer 子级数组中删除Loader 对象。
注意上面红色粗体内容。结合Flex的并行下载(http://blog.csdn.net/tiangej/article/details/7367173)设计, 说明Flex框架使用了多个Loader。
(1)。主swf是由FlashPlayer来加载的,自然Loader由FlashPlayer内部提供: 各个Flex显示对象通过root.loaderInfo来引用FlashPlayer内部提供的Loader。
(2)。加载RSL(包括资源文件swf)则mx.core.RSLItem类中定义的flash.display.Loader变量来实现: Flex框架通过按照一定顺序调用各个功能类的函数: mx.managers.SystemManager --> mx.preloaders.Preloader --> mx.core.RSLListLoader --> mx.core.RSLItem