Flex SWF初始化与显示层级详解

需积分: 9 2 下载量 111 浏览量 更新于2024-09-14 收藏 276KB DOCX 举报
"Flex启动与初始化过程涉及到Flex生成的SWF结构、SystemManager的作用以及Flex显示层级的划分。" 在Flex开发中,Flex生成的SWF文件是一个包含两帧的MovieClip,其文档类继承自SystemManager。这种设计使得在SWF加载时,第一帧仅用于创建一个默认的加载器,而加载器的界面则是通过代码动态绘制的。这种早期加载机制允许在内容逐步下载的过程中,加载器能快速地呈现在舞台上。当Flex应用程序及其所需的共享库下载完成,SystemManager会切换到第二帧,从而在应用程序域中找到Application类的定义并实例化。 SystemManager作为Flex应用程序的核心,它不仅是SWF的文档类,也是整个应用的入口点。这个类扩展了MovieClip,负责管理SWF的加载和启动,同时还承担着划分显示层级、管理嵌入字体和样式、监控舞台尺寸等关键任务。部分功能如Application或全局管理器中的功能,可以通过不同的访问方式调用。 Flex的显示层级划分非常精细,SystemManager起到了关键的管理角色。在Flex应用程序中,存在三个特殊的顶级显示层:应用程序层、弹出窗口层和工具提示层,它们都直接挂载在SystemManager下。此外,还有一个鼠标光标层。这三个层级分别由popUpChildren、toolTipChildren和cursorChildren集合来记录,这些集合由Flex框架自动维护,确保了弹出窗口始终位于应用程序之上,工具提示又位于弹出窗口之上,鼠标光标则位于最顶层。开发者不应直接修改这些集合,以免干扰框架的正常运行,但可以利用这些层级来组织和管理自己的应用组件。 SystemManager还重写了DisplayObjectContainer接口,这意味着通过SystemManager获取的子级不会包含那些辅助层(如浮动窗口、工具提示和光标),以及内部的鼠标捕捉层。这使得开发者可以专注于默认的应用程序层和通过addChild()等方法添加的其他内容。 理解Flex的启动与初始化,以及SystemManager和显示层级的管理,对于优化Flex应用程序的性能和用户体验至关重要。掌握这些概念,可以帮助开发者更好地控制和组织Flex应用程序的结构,实现更高效、更流畅的交互效果。