包 | mx.managers |
类 | public class FocusManager |
继承 | FocusManager Object |
实现 | IFocusManager |
FocusManager 管理“组件级别”的焦点。在 Flex 中,只有组件中的 UITextField 允许使用键盘输入文本。对于 Flash Player 或 AIR,该 UITextField 具有焦点。然而,从 FocusManager 的角度来说,具有焦点的却是作为 UITextField 的父项的组件。因此,组件级别的焦点与播放器级别的焦点是不同的。应用程序开发人员一般只需要处理组件级别的焦点,而组件开发人员则必须通晓播放器级别的焦点。
可以由 FocusManager 管理的所有组件都必须实现 mx.managers.IFocusManagerComponent,但由播放器级别的焦点管理的对象则不必实现。
FocusManager 还可以管理 defaultButton 的概念,这是表单上的一个 Button,用于在按下 Enter 键时根据焦点当时所在的位置调度 click 事件。
属性 | 定义方 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
defaultButton : IButton 对原始的默认 Button 控件的引用。 | FocusManager | ||
defaultButtonEnabled : Boolean 一个标志,指示 FocusManager 是否应检查为激活默认按钮而要按下的 Enter 键。 | FocusManager | ||
focusPane : Sprite 随着焦点在各容器之间移动的单个 Sprite。 | FocusManager | ||
nextTabIndex : int [只读 (read-only)] 此 Tab 键循环中要用到的下一个唯一的 tab 索引。 | FocusManager | ||
prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | ||
showFocusIndicator : Boolean 一个标志,指示是否显示用于指示组件具有焦点的指示符。 | FocusManager |
方法 | 定义方 | ||
---|---|---|---|
构造函数。 | FocusManager | ||
如果同时有多个 IFocusManagerContainer 可见,则 SystemManager 将激活 FocusManager,然后取消激活。 | FocusManager | ||
对于顶级焦点管理器以及所创建的可获焦点内容的每个新桥的父焦点管理器调用此方法。 | FocusManager | ||
如果同时有多个 IFocusManagerContainer 可见,则 SystemManager 将激活 FocusManager,然后取消激活。 | FocusManager | ||
返回包含给定对象(如果有)的 IFocusManagerComponent。 | FocusManager | ||
获取当前具有焦点的 IFocusManagerComponent 组件。 | FocusManager | ||
返回 IFocusManagerComponent,当用户按下 Tab 键导航到下一个组件时,它可以获取焦点。 | FocusManager | ||
指示对象是否已经定义了指定的属性。 | Object | ||
将 showFocusIndicator 设置为 false,并从具有焦点的对象(如果有)上删除可视的焦点指示符。 | FocusManager | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
将焦点从当前控件移至 Tab 键顺序中的上一个或下一个控件。 | FocusManager | ||
指示指定的属性是否存在、是否可枚举。 | Object | ||
FocusManager | |||
将焦点设置到 IFocusManagerComponent 组件。 | FocusManager | ||
设置循环操作动态属性的可用性。 | Object | ||
将 showFocusIndicator 设置为 true,并在具有焦点的对象(如果有)上绘制可视的焦点指示符。 | FocusManager | ||
返回承载 FocusManager 对象的组件的 String 表示形式,并在该 String 末尾追加 String“.focusManager”。 | FocusManager | ||
返回指定对象的原始值。 | Object |
defaultButton | 属性 |
defaultButton:IButton
[读写]
对原始的默认 Button 控件的引用。当任何控件上有焦点时按 Enter 键可调度 Button 控件上的 click
事件,从而激活 Button 控件,效果与单击鼠标相同。如果将焦点授予了其它 Button 控件,却在当焦点不在按钮上时将焦点切换回原始控件,则默认 Button 控件实际上发生了更改。
此属性由 Flex 容器管理;请勿直接设置此属性来指定默认按钮。
defaultButton
必须属于 mx.controls.Button
类,即使此属性属于 IUIComponent
类型也不例外。
public function get defaultButton():IButton
public function set defaultButton(value:IButton):void
defaultButtonEnabled | 属性 |
defaultButtonEnabled:Boolean
[读写]
一个标志,指示 FocusManager 是否应检查为激活默认按钮而要按下的 Enter 键。TextArea 和希望识别 Enter
键的其它组件将此属性设置为 false
,以禁止 Enter 键调度默认按钮上的 click
事件(如果存在)。
public function get defaultButtonEnabled():Boolean
public function set defaultButtonEnabled(value:Boolean):void
focusPane | 属性 |
focusPane:Sprite
[读写] 随着焦点在各容器之间移动的单个 Sprite。Sprite 将作为用于指示组件具有焦点的可视指示符的父项。
public function get focusPane():Sprite
public function set focusPane(value:Sprite):void
nextTabIndex | 属性 |
nextTabIndex:int
[只读 (read-only)] 此 Tab 键循环中要用到的下一个唯一的 tab 索引。
public function get nextTabIndex():int
showFocusIndicator | 属性 |
showFocusIndicator:Boolean
[读写]
一个标志,指示是否显示用于指示组件具有焦点的指示符。如果为 true
,则获得焦点的组件将绘制一个可视指示符,指示它具有焦点。
默认为 false
,如果用户使用 Tab 键,则将其设为 true
。
通常情况下,最好使用 showFocus()
和 hideFocus()
方法更改此属性,因为这些方法还会更新用于指示组件具有焦点的可视指示符。
public function get showFocusIndicator():Boolean
public function set showFocusIndicator(value:Boolean):void
FocusManager | () | 构造函数 |
public function FocusManager(container:IFocusManagerContainer, popup:Boolean = false)
构造函数。
FocusManager 管理 IFocusManagerContainer 的子项内的焦点。它会在执行构造函数期间在 IFocusManagerContainer 中自行安装。
参数container:IFocusManagerContainer — 承载 FocusManager 的 IFocusManagerContainer。 | |
popup:Boolean (default = false ) —
如果为 true ,则表明该容器是一个弹出组件,而不是主应用程序。
|
activate | () | 方法 |
public function activate():void
如果同时有多个 IFocusManagerContainer 可见,则 SystemManager 将激活 FocusManager,然后取消激活。如果在具有已取消激活 FocusManager 的 IFocusManagerContainer 中单击鼠标,则 SystemManager 将对该 FocusManager 调用 activate()
方法。已激活的 FocusManager 将首先调用自身的 deactivate()
方法,然后再激活另一个 FocusManager。
FocusManager 可以添加允许其监视与焦点相关的键盘和鼠标活动的事件处理程序。
addSWFBridge | () | 方法 |
public function addSWFBridge(bridge:IEventDispatcher, owner:DisplayObject):void
对于顶级焦点管理器以及所创建的可获焦点内容的每个新桥的父焦点管理器调用此方法。调用可获焦点的新内容的父焦点管理器后,可获焦点的内容将成为 Tab 键顺序的一部分。调用顶级焦点管理器后,桥即成为顶级焦点管理器所管理的焦点管理器之一。
参数
bridge:IEventDispatcher | |
owner:DisplayObject |
deactivate | () | 方法 |
public function deactivate():void
如果同时有多个 IFocusManagerContainer 可见,则 SystemManager 将激活 FocusManager,然后取消激活。如果在具有已取消激活 FocusManager 的 IFocusManagerContainer 中单击鼠标,则 SystemManager 将对该 FocusManager 调用 activate()
方法。已激活的 FocusManager 将首先调用自身的 deactivate()
方法,然后再激活另一个 FocusManager。
FocusManager 可以删除允许其监视与焦点相关的键盘和鼠标活动的事件处理程序。
findFocusManagerComponent | () | 方法 |
public function findFocusManagerComponent(o:InteractiveObject):IFocusManagerComponent
返回包含给定对象(如果有)的 IFocusManagerComponent。因为播放器可以为 Flex 组件的子组件设置焦点,所以此方法可以从组件角度确定具有焦点的 IFocusManagerComponent。
参数
o:InteractiveObject — 具有 Flash Player 级别的焦点的对象。 |
IFocusManagerComponent —
包含 o 或 null 的 IFOcusManagerComponent
|
getFocus | () | 方法 |
public function getFocus():IFocusManagerComponent
获取当前具有焦点的 IFocusManagerComponent 组件。建议调用此方法而不要使用 Stage 对象,因为此方法可以指示哪个组件具有焦点。Stage 可能会返回该组件中的子组件。
返回IFocusManagerComponent — 具有焦点的 IFocusManagerComponent 对象。 |
getNextFocusManagerComponent | () | 方法 |
public function getNextFocusManagerComponent(backward:Boolean = false):IFocusManagerComponent
返回 IFocusManagerComponent,当用户按下 Tab 键导航到下一个组件时,它可以获取焦点。如果应用程序中不存在其它的有效组件,则会返回与当前具有焦点的组件相同的组件。
参数
backward:Boolean (default = false ) —
如果为 true ,则返回该对象,就像按下了 Shift-Tab 一样。
|
IFocusManagerComponent — 要接收焦点的组件。 |
hideFocus | () | 方法 |
public function hideFocus():void
将 showFocusIndicator
设置为 false
,并从具有焦点的对象(如果有)上删除可视的焦点指示符。
moveFocus | () | 方法 |
public function moveFocus(direction:String, fromDisplayObject:DisplayObject = null):void
将焦点从当前控件移至 Tab 键顺序中的上一个或下一个控件。移动的方向由 direction
参数指定。
参数
direction:String —
FocusRequestDirection.FORWARD 将焦点从当前具有焦点的控件移至选项卡索引较高的控件。如果多个控件的索引相同,则将访问文档流中的下一个控件。FocusRequestDirection.BACKWARD 将焦点移至选项卡索引较低的控件。FocusRequestDirection.TOP 将焦点移至选项卡索引最低的控件。如果多个控件的索引相同,则将焦点移至文档流中的第一个控件。FocusRequestDirection.BOTTOM 将焦点移至选项卡索引最高的控件。如果多个控件的索引相同,则将焦点移至文档流中的最后一个控件。
| |
fromDisplayObject:DisplayObject (default = null ) — 移动焦点的起始点。如果提供了对象,则此行为优先于从当前具有焦点的对象移动焦点这一默认行为。 |
removeSWFBridge | () | 方法 |
setFocus | () | 方法 |
public function setFocus(o:IFocusManagerComponent):void
将焦点设置到 IFocusManagerComponent 组件。此方法不检查组件的可见性、启用状态或任何其它条件。
参数
o:IFocusManagerComponent — 一个可以接收焦点的组件。 |
showFocus | () | 方法 |
public function showFocus():void
将 showFocusIndicator
设置为 true
,并在具有焦点的对象(如果有)上绘制可视的焦点指示符。
toString | () | 方法 |
public function toString():String
返回承载 FocusManager 对象的组件的 String 表示形式,并在该 String 末尾追加 String ".focusManager"
。
String —
返回承载 FocusManager 对象的组件的 String 表示形式,并在该 String 末尾追加 String ".focusManager" 。
|