Flex框架深度解析:从预加载到应用完成

需积分: 45 1 下载量 111 浏览量 更新于2024-09-16 收藏 19KB DOCX 举报
"本文将深入探讨Flex框架的基本原理,包括其与Flash程序的关系、程序启动流程、SystemManager的角色以及预加载器的工作机制。此外,还将介绍如何在Flex程序中加载其他Flex程序。" Flex框架是基于ActionScript (AS) 编写的,用于构建富互联网应用程序(RIA)的开发框架。它利用了Flash Player或Adobe AIR运行时环境,但与传统的Flash动画不同,Flex程序并不依赖时间轴(timeline),而是将所有内容集中在一个帧内运行。Flex的核心在于其组件模型,它使得开发者能够构建可重用且高度定制的用户界面。 Flex程序的运行始于一个名为SystemManager的对象,它是从`flash.display.MovieClip`派生的。SystemManager分为两个帧:预加载帧和主程序帧。预加载阶段处理程序的实例化,而初始化阶段则创建程序内容。接着,创建完成阶段执行布局和其他必要的设置。当所有这些步骤都完成后,SystemManager会发出`applicationComplete`事件,表示程序已经准备好运行。 SystemManager扮演着关键角色,管理着前端显示的所有内容,如弹出窗口、鼠标指针和工具提示。`totalLevelSystemManager`属性用于区分独立运行的Flex程序和被其他Flex程序加载的情况。每个UIComponent都有一个`systemManager`属性,指向当前程序的SystemManager实例,确保组件能够正确地与系统管理器交互。 预加载器是SystemManager在第一帧自动创建的,用于跟踪和报告程序加载进度。当预加载器完成其任务时,它会触发`complete`事件,进入第二帧并被销毁。预加载过程中还有其他事件,如`progress`(下载进度)、`rslError`(运行时共享库下载失败)、`rslProgress`(运行时共享库下载进度)和`rslComplete`(运行时共享库下载完成)等,这些事件提供了关于加载状态的反馈。 在Flex中加载另一个Flex程序,被加载的程序会经历相同的初始化阶段。一旦加载完成,主程序可以访问和控制这个新加载的Flex程序。例如,B.mxml编译成B.swf后,可以通过主程序动态加载并运行。 Flex框架提供了一个强大的平台,用于构建交互性强、响应速度快的应用程序。通过理解其基本原理,开发者可以更好地掌握如何有效地利用Flex来设计和构建复杂的RIA项目。在实际开发中,熟练掌握SystemManager的管理和预加载器的使用,能显著提升Flex应用的用户体验和性能。