加载与初始化Flex Application

来源:互联网 发布:日军真实战斗力 知乎 编辑:程序博客网 时间:2024/05/17 02:00

Flex Applications是.swf文件并运行于Flash Player。之前Flash Player创建用以重复矢量动画。所以历史遗留,运行.swf内容时Flash Player依旧使用时间线。。Flash Player支持帧的概念——同电影的帧一样。帧在时间线内以队列形式通过,未有指令发出时,Flash Player自动重播.swf文件,因为.swf格式是渐进式下载格式。这意味着Flash Player无需等待整个.swf文件加载完毕,即可开始读取.swf内容并播放运行它。

Flex Applications有三大特性:SystemManager(系统管理器)、Preloader(预加载)、Application(应用)。

SystemManager类是flash.display.MovieClip类的子类,由于MovieClip类支持多帧特性。Flex并不太多依赖时间轴,所有Flex组件仅为一帧。SystemManager实例的两帧特性:第一帧是轻量级的,仅包含管理和监视加载进度的内容。第二部分包括Application实例、自定义类、嵌入资源。当第二帧开始加载及初始化时,它可为用户快速显示进度条。


1. 第一帧是.swf加载和自动创建系统管理器实例。

2. SystemManger加载资源文件。

3. SystemManger停留在第一帧,防止事件在第二帧开始运行。

4. SystemManger创建Preloader实例。

5. SystemManger注册ResourceManager,并使其在第一帧可见,使用问号字符或Flash变量指定传递给资源管理器的资源模型。

6. SystemManger开始预加载队列。

7. Preloader实例创建预加载显示。

8. Preloader开始加载运行时共享库。

9. Preloader监视主.swf加载过程和运行时共享库,加载完毕时派发事件通知显示。

10. 所有内容(运行时共享库和主swf)加载完毕后,Preloader派发initProgress事件,此事件告知SystemManager所有内容准备就绪,可以开始初始化Application对象了。

11. SystemManager接收initProgress事件,跳至下一帧,开始Application对象实例化。

12. Application对象开始执行,启动其生命周期,包括布局管理。

13. Application初始化完毕后,派发creationComplete事件告知Preloader对象。

14. 预加载派发complete事件告知SystemManager加载完毕。

15. SystemManager向显示列表添加Application实例并移除Preloader和Preloader显示。

16. SystemManager与Application对象均派发applicationComplete事件。


原创粉丝点击