| 包 | mx.managers |
| 接口 | public interface ISystemManager extends IEventDispatcher , IChildList , IFlexModuleFactory |
| 实现器 | SystemManager, WindowedSystemManager |
mx.core.Application 实例的“应用程序窗口”,该实例是应用程序中的“顶级”主窗口。
每个应用程序都有一个 ISystemManager。如果应用程序窗口的大小发生更改(您无法在应用程序中更改其大小,只能通过与操作系统窗口或浏览器交互来进行更改),则 ISystemManager 会发送一个事件。它是应用程序中所有可显示项目(例如 mx.core.Application 主实例以及所有弹出窗口、工具提示、光标等)的父项。任何以 ISystemManager 为父项的对象都将被视为“顶级”窗口,就连工具提示和光标也是如此。
如果显示有多个 IFocusManagerContainer,并且用户正在与 IFocusManagerContainers 中的组件进行交互,则 ISystemManager 还可以在各顶级窗口之间切换焦点。
所有未显式捕获的键盘和鼠标活动对 ISystemManager 都是可见的,因此,可以使用它来监视本应由您监视的活动。
在将某个应用程序加载到另一个应用程序时,虽然仍会创建 ISystemManager,但是根据安全性和域规则,将不会使用它来管理“应用程序窗口”;而将作为加载它的 Loader 的 content,只是充当子应用程序的父级。
ISystemManager 可维护多个子项列表,工具提示、光标、弹出窗口各有一个列表。因此,它可以确保弹出窗口“浮”在主应用程序窗口上方,工具提示“浮”在弹出窗口上方,光标“浮”在工具提示上方。若要对 ISystemManager 检查 numChildren 属性或 getChildAt() 方法,则需要访问主应用程序窗口以及其它任何没有弹出的窗口。要获得所有窗口(包括弹出窗口、工具提示和光标)的列表,请使用 rawChildren 属性。
| 属性 | 定义方 | ||
|---|---|---|---|
| cursorChildren : IChildList [只读 (read-only)] 使用此 ISystemManager 作为父项的自定义光标的列表。 | ISystemManager | ||
| document : Object 对文档对象的引用。 | ISystemManager | ||
| focusPane : Sprite 在各组件之间共享的单个 Sprite,用作绘图焦点的叠加层。 | ISystemManager | ||
| loaderInfo : LoaderInfo [只读 (read-only)] 提供应用程序相关信息的 LoaderInfo 对象。 | ISystemManager | ||
![]() | numChildren : 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 | ||
![]() | 在此子项列表的末尾添加一个子 DisplayObject。 | IChildList | |
![]() | 在此子级列表的指定索引处添加子 DisplayObject。 | IChildList | |
向系统管理器添加子桥。 | ISystemManager | ||
向所请求的层中的沙箱根添加子级。 | ISystemManager | ||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | IEventDispatcher | |
注册一个包含 FocusManager 的顶级窗口。 | ISystemManager | ||
![]() | 确定 DisplayObject 是否在此子级列表中,或是否为此子级列表中的子项的后代。 | IChildList | |
![]() | factory 方法,要求定义的实例是模块已知的。 | IFlexModuleFactory | |
取消激活 IFocusManagerContainer 中的 FocusManager,并激活下一个最高层 IFocusManagerContainer 窗口中的 FocusManager。 | ISystemManager | ||
部署或删除鼠标盾。 | ISystemManager | ||
![]() | 将事件调度到事件流中。 | IEventDispatcher | |
dispatchEventFromSWFBridges(event:Event, skip:IEventDispatcher = null, trackClones:Boolean = false, toOtherSystemManagers:Boolean = false):void 向此 SystemManager 的 SWF 桥组中的所有父应用程序和子应用程序调度消息,无论这些应用程序是否在同一个 SecurityDomain 中都是如此。 | ISystemManager | ||
![]() | 获取此子级列表中指定索引处的子 DisplayObject。 | IChildList | |
![]() | 获取此子级列表中具有指定名称的子 DisplayObject。 | IChildList | |
![]() | 获取此子级列表中特定子项的索引。 | IChildList | |
将给定的 String 转换为 Class 或数据包级的 Function。 | ISystemManager | ||
![]() | 返回位于子级列表中指定点下方的 DisplayObject 的数组。 | IChildList | |
获取此 SecurityDomain 中所有顶级系统管理器的根系统管理器 | ISystemManager | ||
尝试获取位于主应用程序中的系统管理器。 | ISystemManager | ||
获取所加载应用程序在屏幕上对用户可见的范围。 | ISystemManager | ||
![]() | 检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | IEventDispatcher | |
![]() | 返回包含模块已知的静态数据的键/值对块。 | IFlexModuleFactory | |
测试显示对象是否位于以兼容模式加载的子应用程序中,或者位于不受信任的沙箱中。 | ISystemManager | ||
如果所需的字体已嵌入到此应用程序中,或已使用 Font.registerFont() 方法进行了全局注册,则返回 true。 | ISystemManager | ||
如果此 ISystemManager 负责应用程序窗口,则返回 true;如果此应用程序已加载到其它应用程序中,则返回 false。 | ISystemManager | ||
测试此系统管理器是否为所有顶级系统管理器的根。 | ISystemManager | ||
![]() | 从此子级列表中删除指定的子 DisplayObject。 | IChildList | |
![]() | 从此子级列表中删除指定索引处的子 DisplayObject。 | IChildList | |
向系统管理器添加子桥。 | ISystemManager | ||
从所请求的层中的沙箱根删除子级。 | ISystemManager | ||
![]() | 从 EventDispatcher 对象中删除侦听器。 | IEventDispatcher | |
取消注册包含 FocusManager 的顶级窗口。 | ISystemManager | ||
![]() | 更改此子级列表中特定子项的索引。 | IChildList | |
确定使用此系统管理器的调用方是应直接与其它管理器通信,还是应与桥通信。 | ISystemManager | ||
![]() | 检查是否用此 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 对象包含 x、y、width 和 height 属性。
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:Boolean —
true 将部署鼠标盾,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。
|