mx.managers
接口public interface IFocusManager
实现器 FocusManager

IFocusManager 接口可定义一类接口,组件必须实现此类接口才能管理组件中的焦点以响应鼠标活动或键盘活动(Tab 键),才能支持默认按钮。

另请参见

mx.managers.FocusManager


公共属性
 属性定义方
  defaultButton : IButton
对原始的默认 Button 控件的引用。
IFocusManager
  defaultButtonEnabled : Boolean
一个标志,指示 FocusManager 是否应检查为激活默认按钮而要按下的 Enter 键。
IFocusManager
  focusPane : Sprite
随着焦点在各容器之间移动的单个 Sprite。
IFocusManager
  nextTabIndex : int
[只读 (read-only)] 此 Tab 键循环中要用到的下一个唯一的 tab 索引。
IFocusManager
  showFocusIndicator : Boolean
一个标志,指示是否显示用于指示组件具有焦点的指示符。
IFocusManager
公共方法
 方法定义方
  
如果同时有多个 IFocusManagerContainer 可见,则 SystemManager 将激活 FocusManager,然后取消激活。
IFocusManager
  
向此焦点管理器添加 SWF 桥。
IFocusManager
  
如果同时有多个 IFocusManagerContainer 可见,则 SystemManager 将激活 FocusManager,然后取消激活。
IFocusManager
  
返回包含给定对象(如果有)的 IFocusManagerComponent。
IFocusManager
  
获取当前具有焦点的 IFocusManagerComponent 组件。
IFocusManager
  
返回 IFocusManagerComponent,当用户按下 Tab 键导航到下一个组件时,它可以获取焦点。
IFocusManager
  
将 showFocusIndicator 设置为 false,并从具有焦点的对象(如果有)上删除可视的焦点指示符。
IFocusManager
  
moveFocus(direction:String, fromDisplayObject:DisplayObject = null):void
将焦点从当前控件移至 Tab 键顺序中的上一个或下一个控件。
IFocusManager
  
删除焦点管理器。
IFocusManager
  
将焦点设置到 IFocusManagerComponent 组件。
IFocusManager
  
将 showFocusIndicator 设置为 true,并在具有焦点的对象(如果有)上绘制可视的焦点指示符。
IFocusManager
属性详细信息
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
方法详细信息
activate()方法
public function activate():void

如果同时有多个 IFocusManagerContainer 可见,则 SystemManager 将激活 FocusManager,然后取消激活。如果在具有已取消激活 FocusManager 的 IFocusManagerContainer 中单击鼠标,则 SystemManager 将对该 FocusManager 调用 activate() 方法。已激活的 FocusManager 将首先调用自身的 deactivate() 方法,然后再激活另一个 FocusManager。

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

向此焦点管理器添加 SWF 桥。必须添加 SWF 桥,才能让焦点在其它沙箱中的焦点管理器之间或使用焦点管理器的不同版本进行无缝传递。

参数

bridge:IEventDispatcher — 通向另一个焦点管理器的桥。
 
owner:DisplayObject — 拥有桥的显示对象。

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

如果同时有多个 IFocusManagerContainer 可见,则 SystemManager 将激活 FocusManager,然后取消激活。如果在具有已取消激活 FocusManager 的 IFocusManagerContainer 中单击鼠标,则 SystemManager 将对该 FocusManager 调用 activate() 方法。已激活的 FocusManager 将首先调用自身的 deactivate() 方法,然后再激活另一个 FocusManager。

findFocusManagerComponent()方法 
public function findFocusManagerComponent(o:InteractiveObject):IFocusManagerComponent

返回包含给定对象(如果有)的 IFocusManagerComponent。因为播放器可以为 Flex 组件的子组件设置焦点,所以此方法可以从组件角度确定具有焦点的 IFocusManagerComponent。

参数

o:InteractiveObject — 具有 Flash Player 级别的焦点的对象。

返回
IFocusManagerComponent — 包含 onull 的 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:StringFocusRequestDirection.FORWARD 将焦点从当前具有焦点的控件移至选项卡索引较高的控件。如果多个控件的索引相同,则将访问文档流中的下一个控件。FocusRequestDirection.BACKWARD 将焦点移至选项卡索引较低的控件。FocusRequestDirection.TOP 将焦点移至选项卡索引最低的控件。如果多个控件的索引相同,则将焦点移至文档流中的第一个控件。FocusRequestDirection.BOTTOM 将焦点移至选项卡索引最高的控件。如果多个控件的索引相同,则将焦点移至文档流中的最后一个控件。
 
fromDisplayObject:DisplayObject (default = null) — 移动焦点的起始点。如果提供了对象,则此行为优先于从当前具有焦点的对象移动焦点这一默认行为。

removeSWFBridge()方法 
public function removeSWFBridge(bridge:IEventDispatcher):void

删除焦点管理器。在删除通过调用 addSWFBridge 添加的桥时必须调用此方法。

参数

bridge:IEventDispatcher — 要删除的桥。

setFocus()方法 
public function setFocus(o:IFocusManagerComponent):void

将焦点设置到 IFocusManagerComponent 组件。此方法不检查组件的可见性、启用状态或任何其它条件。

参数

o:IFocusManagerComponent — 一个可以接收焦点的组件。

showFocus()方法 
public function showFocus():void

showFocusIndicator 设置为 true,并在具有焦点的对象(如果有)上绘制可视的焦点指示符。