Flex加载

来源:互联网 发布:深入java虚拟机第二版 编辑:程序博客网 时间:2024/05/16 13:58

     Flex生成的swf是个2帧的MovieClip,第一帧包括文档类SystemManager与加载器Preloader,第二帧是项目Application.
SystemManager是在应用程序中创建的第一个显示类,它负责创建要显示的mx.preloaders.Preloader以及应用程序完成加载时显示的mx.preloaders,SparkDownloadProgressBar,然后创建mx.core.Application实例。

      SystemManager 类管理应用程序窗口。桌面上或浏览器中运行的每个应用程序中都有一个区域,用于显示应用程序的可视部分。该区域可能是操作系统中的某个窗口,也可能是浏览器中的某个区域。此区域是一个不同于 mx.core.Application 实例的应用程序窗口,前者是应用程序中的主窗口(即顶级主窗口)。

每个应用程序都包含一个 SystemManager。如果应用程序窗口的大小发生更改(您无法在应用程序中更改其大小,只能通过与操作系统窗口或浏览器交互来进行更改),则 SystemManager 会发送一个事件。它是应用程序中所有可显示项目(例如 mx.core.Application 主实例以及所有弹出窗口、工具提示、光标等)的父项。任何以 SystemManager 作为父项的对象都将被视为“顶级”窗口,就连工具提示和光标也是如此。

如果显示有多个 IFocusManagerContainer,并且用户正在与 IFocusManagerContainers 中的组件进行交互,则 SystemManager 还可以在顶级窗口之间切换焦点。

使用 SystemManager 可以查看所有并非显式捕获的键盘和鼠标活动,所以,如有必要,可以使用它来监视活动。

在将某个应用程序加载到另一个应用程序时,虽然仍会创建 SystemManager,但是根据安全性和域规则,将不会使用它来管理“应用程序窗口”。而将作为加载它的 Loadercontent,只是充当子应用程序的父级。

SystemManager 可维护多个子项列表,工具提示、光标、弹出窗口各有一个列表。因此,它可以确保弹出窗口“浮”在主应用程序窗口上方,工具提示“浮”在弹出窗口上方,光标“浮”在工具提示上方。如果只对 SystemManager 检查 numChildren 属性或调用 getChildAt() 方法,则需要访问主应用程序窗口以及其他任何没有弹出的窗口。要获得所有窗口(包括弹出窗口、工具提示和光标)的列表,请使用 rawChildren 属性。

原创粉丝点击