mx.managers
接口public interface ISystemManager extends IEventDispatcher , IChildList , IFlexModuleFactory
实现器 SystemManager, WindowedSystemManager

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

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

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

所有未显式捕获的键盘和鼠标活动对 ISystemManager 都是可见的,因此,可以使用它来监视本应由您监视的活动。

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

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



公共属性
 属性定义方
  cursorChildren : IChildList
[只读 (read-only)] 使用此 ISystemManager 作为父项的自定义光标的列表。
ISystemManager
  document : Object
对文档对象的引用。
ISystemManager
  focusPane : Sprite
在各组件之间共享的单个 Sprite,用作绘图焦点的叠加层。
ISystemManager
  loaderInfo : LoaderInfo
[只读 (read-only)] 提供应用程序相关信息的 LoaderInfo 对象。
ISystemManager
 InheritednumChildren : int
[只读 (read-only)] 此子级列表中的子项数。
IChildList
  numModalWindows : int
模式窗口的数量。
ISystemManager
  popUpChildren : IChildList
[只读 (read-only)] 将使用此 ISystemManager 作为父项的最顶级窗口(弹出窗口)的列表。
ISystemManager
  rawChildren : IChildList
[只读 (read-only)] 使用此 ISystemManager 作为父项的所有子项的列表。
ISystemManager
  screen : Rectangle
[只读 (read-only)] 应用程序窗口的大小和位置。
ISystemManager
  stage : Stage
[只读 (read-only)] 代表映射到此 SystemManager 中的应用程序窗口的 flash.display.Stage。
ISystemManager
  swfBridgeGroup : ISWFBridgeGroup
[只读 (read-only)] 包含所有通向此应用程序所连接的其它应用程序的桥。
ISystemManager
  toolTipChildren : IChildList
[只读 (read-only)] 将使用此 ISystemManager 作为父项的工具提示的列表。
ISystemManager
  topLevelSystemManager : ISystemManager
[只读 (read-only)] 负责应用程序窗口的 ISystemManager。
ISystemManager
公共方法
 方法定义方
  
激活 IFocusManagerContainer 中的 FocusManager。
ISystemManager
 Inherited
在此子项列表的末尾添加一个子 DisplayObject。
IChildList
 Inherited
在此子级列表的指定索引处添加子 DisplayObject。
IChildList
  
向系统管理器添加子桥。
ISystemManager
  
向所请求的层中的沙箱根添加子级。
ISystemManager
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
IEventDispatcher
  
注册一个包含 FocusManager 的顶级窗口。
ISystemManager
 Inherited
确定 DisplayObject 是否在此子级列表中,或是否为此子级列表中的子项的后代。
IChildList
 Inherited
create(... parameters):Object
factory 方法,要求定义的实例是模块已知的。
IFlexModuleFactory
  
取消激活 IFocusManagerContainer 中的 FocusManager,并激活下一个最高层 IFocusManagerContainer 窗口中的 FocusManager。
ISystemManager
  
部署或删除鼠标盾。
ISystemManager
 Inherited
将事件调度到事件流中。
IEventDispatcher
  
dispatchEventFromSWFBridges(event:Event, skip:IEventDispatcher = null, trackClones:Boolean = false, toOtherSystemManagers:Boolean = false):void
向此 SystemManager 的 SWF 桥组中的所有父应用程序和子应用程序调度消息,无论这些应用程序是否在同一个 SecurityDomain 中都是如此。
ISystemManager
 Inherited
获取此子级列表中指定索引处的子 DisplayObject。
IChildList
 Inherited
获取此子级列表中具有指定名称的子 DisplayObject。
IChildList
 Inherited
获取此子级列表中特定子项的索引。
IChildList
  
将给定的 String 转换为 Class 或数据包级的 Function。
ISystemManager
 Inherited
返回位于子级列表中指定点下方的 DisplayObject 的数组。
IChildList
  
获取此 SecurityDomain 中所有顶级系统管理器的根系统管理器
ISystemManager
  
尝试获取位于主应用程序中的系统管理器。
ISystemManager
  
获取所加载应用程序在屏幕上对用户可见的范围。
ISystemManager
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
IEventDispatcher
 Inherited
返回包含模块已知的静态数据的键/值对块。
IFlexModuleFactory
  
测试显示对象是否位于以兼容模式加载的子应用程序中,或者位于不受信任的沙箱中。
ISystemManager
  
如果所需的字体已嵌入到此应用程序中,或已使用 Font.registerFont() 方法进行了全局注册,则返回 true。
ISystemManager
  
如果此 ISystemManager 负责应用程序窗口,则返回 true;如果此应用程序已加载到其它应用程序中,则返回 false。
ISystemManager
  
测试此系统管理器是否为所有顶级系统管理器的根。
ISystemManager
 Inherited
从此子级列表中删除指定的子 DisplayObject。
IChildList
 Inherited
从此子级列表中删除指定索引处的子 DisplayObject。
IChildList
  
向系统管理器添加子桥。
ISystemManager
  
从所请求的层中的沙箱根删除子级。
ISystemManager
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
IEventDispatcher
  
取消注册包含 FocusManager 的顶级窗口。
ISystemManager
 Inherited
更改此子级列表中特定子项的索引。
IChildList
  
确定使用此系统管理器的调用方是应直接与其它管理器通信,还是应与桥通信。
ISystemManager
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
IEventDispatcher
属性详细信息
cursorChildren属性
cursorChildren:IChildList  [只读 (read-only)]

使用此 ISystemManager 作为父项的自定义光标的列表。

ISystemManager 包含各种类型的子项,例如应用程序、弹出窗口、顶级窗口、工具提示和自定义光标。您可以通过 cursorChildren 属性访问自定义光标。

IChildList 对象具有类似于 getChildAt() 的方法和类似于 numChildren 的属性。例如,cursorChildren.numChildren 可提供自定义光标数目(可以是 0,也可以是 1);如果存在自定义光标,您可以将其当作 cursorChildren.getChildAt(0) 进行访问。



实现
    public function get cursorChildren():IChildList
document属性 
document:Object  [读写]

对文档对象的引用。文档对象是位于 Flex 应用程序、MXML 组件或 AS 组件层次结构顶层的 Object。



实现
    public function get document():Object
    public function set document(value:Object):void
focusPane属性 
focusPane:Sprite  [读写]

在各组件之间共享的单个 Sprite,用作绘图焦点的叠加层。如果您有具有焦点的子项组件,则可以共享它;如果您是 IFocusManagerComponent,则不能共享它。



实现
    public function get focusPane():Sprite
    public function set focusPane(value:Sprite):void
loaderInfo属性 
loaderInfo:LoaderInfo  [只读 (read-only)]

提供应用程序相关信息的 LoaderInfo 对象。



实现
    public function get loaderInfo():LoaderInfo
numModalWindows属性 
numModalWindows:int  [读写]

模式窗口的数量。

模式窗口不允许在其它窗口中单击,因为这通常会激活该窗口中的 FocusManager。PopUpManager 在创建和销毁模式窗口时会修改此计数。



实现
    public function get numModalWindows():int
    public function set numModalWindows(value:int):void
popUpChildren属性 
popUpChildren:IChildList  [只读 (read-only)]

将使用此 ISystemManager 作为父项的最顶级窗口(弹出窗口)的列表。

ISystemManager 包含各种类型的子项,例如应用程序、弹出窗口、工具提示和自定义光标。您可以通过 popUpChildren 属性访问最顶级窗口。

IChildList 对象具有类似于 getChildAt() 的方法和类似于 numChildren 的属性。例如,popUpChildren.numChildren 可提供最顶部窗口的数量,您可将最顶部窗口当作 popUpChildren.getChildAt(i) 进行访问。



实现
    public function get popUpChildren():IChildList
rawChildren属性 
rawChildren:IChildList  [只读 (read-only)]

使用此 ISystemManager 作为父项的所有子项的列表。

ISystemManager 包含各种类型的子项,例如应用程序、弹出窗口、工具提示和自定义光标。

IChildList 对象具有类似于 getChildAt() 的方法和类似于 numChildren 的属性。



实现
    public function get rawChildren():IChildList
screen属性 
screen:Rectangle  [只读 (read-only)]

应用程序窗口的大小和位置。Rectangle 对象包含 xywidthheight 属性。



实现
    public function get screen():Rectangle
stage属性 
stage:Stage  [只读 (read-only)]

代表映射到此 SystemManager 中的应用程序窗口的 flash.display.Stage。



实现
    public function get stage():Stage
swfBridgeGroup属性 
swfBridgeGroup:ISWFBridgeGroup  [只读 (read-only)]

包含所有通向此应用程序所连接的其它应用程序的桥。



实现
    public function get swfBridgeGroup():ISWFBridgeGroup
toolTipChildren属性 
toolTipChildren:IChildList  [只读 (read-only)]

将使用此 ISystemManager 作为父项的工具提示的列表。

ISystemManager 包含各种类型的子项,例如应用程序、弹出窗口、最顶部窗口、工具提示和自定义光标。

IChildList 对象具有类似于 getChildAt() 的方法和类似于 numChildren 的属性。例如,toolTipChildren.numChildren 可提供工具提示数目(可以是 0,也可以是 1);如果存在工具提示,您可以将其当作 toolTipChildren.getChildAt(0) 进行访问。



实现
    public function get toolTipChildren():IChildList
topLevelSystemManager属性 
topLevelSystemManager:ISystemManager  [只读 (read-only)]

负责应用程序窗口的 ISystemManager。只要此应用程序尚未加载到其它应用程序中,这就是同一个 ISystemManager。



实现
    public function get topLevelSystemManager():ISystemManager
方法详细信息
activate()方法
public function activate(f:IFocusManagerContainer):void

激活 IFocusManagerContainer 中的 FocusManager。

参数

f:IFocusManagerContainer — 应激活其 FocusManager 的顶级窗口。

addChildBridge()方法 
public function addChildBridge(bridge:IEventDispatcher, owner:DisplayObject):void

向系统管理器添加子桥。每个子桥都代表另一个沙箱中的组件,或以 Flex 的不同版本编译的组件。

参数

bridge:IEventDispatcher — 子级的桥。
 
owner:DisplayObject — 子级的 SWFLoader。

addChildToSandboxRoot()方法 
public function addChildToSandboxRoot(layer:String, child:DisplayObject):void

向所请求的层中的沙箱根添加子级。

参数

layer:String — SystemManager 中 IChildList 的名称
 
child:DisplayObject — 要添加的 DisplayObject

addFocusManager()方法 
public function addFocusManager(f:IFocusManagerContainer):void

注册一个包含 FocusManager 的顶级窗口。由 FocusManager 调用,通常不由应用程序代码调用。

参数

f:IFocusManagerContainer — 应用程序中的顶级窗口。

deactivate()方法 
public function deactivate(f:IFocusManagerContainer):void

取消激活 IFocusManagerContainer 中的 FocusManager,并激活下一个最高层 IFocusManagerContainer 窗口中的 FocusManager。

参数

f:IFocusManagerContainer — 应取消激活其 FocusManager 的顶级窗口。

deployMouseShields()方法 
public function deployMouseShields(deploy:Boolean):void

部署或删除鼠标盾。鼠标盾可以阻止不受信任的应用程序获得鼠标输入。之所以需要阻止鼠标输入,是因为在不受信任的应用程序上拖动时,一般不会收到任何鼠标移动事件。出于安全考虑,Flash Player 在穿越受信任/不受信任的边界时不发送事件。通过用鼠标盾(假设您是其父级)遮盖不受信任的应用程序,可以得到鼠标移动消息,而拖动操作可以发挥预期的作用。

参数

deploy:Booleantrue 将部署鼠标盾,false 将删除鼠标盾。

dispatchEventFromSWFBridges()方法 
public function dispatchEventFromSWFBridges(event:Event, skip:IEventDispatcher = null, trackClones:Boolean = false, toOtherSystemManagers:Boolean = false):void

向此 SystemManager 的 SWF 桥组中的所有父应用程序和子应用程序调度消息,无论这些应用程序是否在同一个 SecurityDomain 中都是如此。根据需要,可以用此方法的参数排除应用程序。

参数

event:Event — 要调度的事件。
 
skip:IEventDispatcher (default = null) — 指定不想向其调度消息的 IEventDispatcher。通常用于跳过发起事件的 IEventDispatcher。
 
trackClones:Boolean (default = false) — 调度事件时,是否保留对这些事件的引用。
 
toOtherSystemManagers:Boolean (default = false) — 是否向 AIR 中的其它顶级 SystemManager 调度事件。

getDefinitionByName()方法 
public function getDefinitionByName(name:String):Object

将给定的 String 转换为 Class 或数据包级的 Function。根据是否加载到其它应用程序来调用适当的 ApplicationDomain.getDefinition() 方法。

参数

name:String — 类名称,例如“mx.video.VideoManager”。

返回
Object — 使用 name 或 null 表示的 Class。
getSandboxRoot()方法 
public function getSandboxRoot():DisplayObject

获取此 SecurityDomain 中所有顶级系统管理器的根系统管理器

返回
DisplayObject — 沙箱中最高等级的 systemManager
getTopLevelRoot()方法 
public function getTopLevelRoot():DisplayObject

尝试获取位于主应用程序中的系统管理器。

返回
DisplayObject — 如果安全限制允许,则为主应用程序的 systemManager;如果它位于不同的 SecurityDomain 中,则为 null。
getVisibleApplicationRect()方法 
public function getVisibleApplicationRect(bounds:Rectangle = null):Rectangle

获取所加载应用程序在屏幕上对用户可见的范围。

参数

bounds:Rectangle (default = null) — 可选。可见矩形的起始边界。边界采用全局坐标。如果 bounds 为 null,则起始边界由系统管理器的 screen 属性定义。

返回
Rectangle — 包括此对象可见部分的 Rectangle。该矩形采用全局坐标。
isDisplayObjectInABridgedApplication()方法 
public function isDisplayObjectInABridgedApplication(displayObject:DisplayObject):Boolean

测试显示对象是否位于以兼容模式加载的子应用程序中,或者位于不受信任的沙箱中。

参数

displayObject:DisplayObject — 要测试的 DisplayObject。

返回
Boolean — 如果 displayObject 位于以兼容模式加载的子应用程序中,或位于不受信任的沙箱中,则为 true;否则为 false
isFontFaceEmbedded()方法 
public function isFontFaceEmbedded(tf:TextFormat):Boolean

如果所需的字体已嵌入到此应用程序中,或已使用 Font.registerFont() 方法进行了全局注册,则返回 true

参数

tf:TextFormat — 提供字符格式设置信息的 TextFormat 类。

返回
Boolean — 如果所需的字体已嵌入到此应用程序中,或已使用 Font.registerFont() 方法进行了全局注册,则返回 true
isTopLevel()方法 
public function isTopLevel():Boolean

如果此 ISystemManager 负责应用程序窗口,则返回 true;如果此应用程序已加载到其它应用程序中,则返回 false

返回
Boolean — 如果此 ISystemManager 负责应用程序窗口,则返回 true
isTopLevelRoot()方法 
public function isTopLevelRoot():Boolean

测试此系统管理器是否为所有顶级系统管理器的根。

返回
Boolean — 如果此 SystemManager 是显示列表上所有 SystemManager 的根,则为 true;否则为 false
removeChildBridge()方法 
public function removeChildBridge(bridge:IEventDispatcher):void

向系统管理器添加子桥。每个子桥都代表另一个沙箱中的组件,或以 Flex 的不同版本编译的组件。

参数

bridge:IEventDispatcher — 子级的桥

removeChildFromSandboxRoot()方法 
public function removeChildFromSandboxRoot(layer:String, child:DisplayObject):void

从所请求的层中的沙箱根删除子级。

参数

layer:String — SystemManager 中 IChildList 的名称
 
child:DisplayObject — 要添加的 DisplayObject

removeFocusManager()方法 
public function removeFocusManager(f:IFocusManagerContainer):void

取消注册包含 FocusManager 的顶级窗口。由 FocusManager 调用,通常不由应用程序代码调用。

参数

f:IFocusManagerContainer — 应用程序中的顶级窗口。

useSWFBridge()方法 
public function useSWFBridge():Boolean

确定使用此系统管理器的调用方是应直接与其它管理器通信,还是应与桥通信。

返回
Boolean — 如果使用此系统管理器的调用方应该使用沙箱桥进行通信,则为 true。如果系统管理器可以通过引用直接调用其它管理器,则为 false