先做些铺垫: 琢磨一下Flex初始化阶段,当加载swf自身以及RSL(资源模块同理)的时候,涉及到哪些关键角色(对象)以及它们的分工协作关系是怎样的?
关键类 | 存在理由 |
flash.display.Loader | Loader是ActionScript(Flex)中用于加载的功能类,当然不能缺少它 |
mx.preloaders.Preloader | 功能类。Preloader顾名思义,是预加载类。是Flex框架中提供的用于控制加载 |
mx.preloaders.SparkDownloadProgressBar | 视图类。与Preloader类配合使用。用来视觉上呈现进度状态,该类将在画面上呈现带阴影的圆角矩形,其上有进度条 |
mx.managers.SystemManager | 总体控制类,用来启动Preloader,并在加载动作完毕后,对加载对象进行控制(比如去掉进度条、Application的显示等) |
SystemManager | SparkDownloadProgressBar | Preloader | ||||
包 | 类对象 | 监听事件 | 监听函数 | initialize | set preloader | |
mx.preloaders | preloader | FlexEvent.PRELOADER_DOC_FRAME_READY | preloader_preloaderDocFrameReadyHandler | ○ | ||
Event.COMPLETE | preloader_completeHandler | ○ | ||||
FlexEvent.PRELOADER_DONE | preloader_preloaderDoneHandler | ○ | ||||
RSLEvent.RSL_COMPLETE | preloader_rslCompleteHandler | ○ | ||||
ProgressEvent.PROGRESS | progressHandler | ○ | ||||
Event.COMPLETE | completeHandler | ○ | ||||
RSLEvent.RSL_PROGRESS | rslProgressHandler | ○ | ||||
RSLEvent.RSL_COMPLETE | rslCompleteHandler | ○ | ||||
RSLEvent.RSL_ERROR | rslErrorHandler | ○ | ||||
FlexEvent.INIT_PROGRESS | initProgressHandler | ○ | ||||
FlexEvent.INIT_COMPLETE | initCompleteHandler | ○ | ||||
flash.display.Loader | contentLoaderInfo | ProgressEvent.PROGRESS | rslProgressHandler | ○ | ||
Event.COMPLETE | rslCompleteHandler | ○ |