| 包 | flash.events |
| 类 | public class FocusEvent |
| 继承 | FocusEvent Event Object |
| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
FocusEvent.FOCUS_IN
FocusEvent.FOCUS_OUT
FocusEvent.KEY_FOCUS_CHANGE
FocusEvent.MOUSE_FOCUS_CHANGE
| 属性 | 定义方 | ||
|---|---|---|---|
![]() | bubbles : Boolean [只读 (read-only)] 指示事件是否为冒泡事件。 | Event | |
![]() | cancelable : Boolean [只读 (read-only)] 指示是否可以阻止与事件相关联的行为。 | Event | |
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
![]() | currentTarget : Object [只读 (read-only)] 当前正在使用某个事件侦听器处理 Event 对象的对象。 | Event | |
指定 focusIn 事件的焦点方向。 | FocusEvent | ||
![]() | eventPhase : uint [只读 (read-only)] 事件流中的当前阶段。 | Event | |
| isRelatedObjectInaccessible : Boolean 如果为 true,则 relatedObject 属性是出于与安全沙箱相关的原因而设置为 null 的。 | FocusEvent | ||
| keyCode : uint 被按下以触发 keyFocusChange 事件的键的键控代码值。 | FocusEvent | ||
![]() | prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | |
| relatedObject : InteractiveObject 对补充 InteractiveObject 实例的引用,焦点变化会对此实例造成影响。 | FocusEvent | ||
| shiftKey : Boolean 指出是否激活了 Shift 功能键,若激活则值为 true。 | FocusEvent | ||
![]() | target : Object [只读 (read-only)] 事件目标。 | Event | |
![]() | type : String [只读 (read-only)] 事件的类型。 | Event | |
| 方法 | 定义方 | ||
|---|---|---|---|
FocusEvent(type:String, bubbles:Boolean = true, cancelable:Boolean = false, relatedObject:InteractiveObject = null, shiftKey:Boolean = false, keyCode:uint = 0, direction:String = "none") 创建一个 Event 对象,其中包含有关焦点事件的特定信息。 | FocusEvent | ||
创建 FocusEvent 对象的副本,并设置每个属性的值以匹配原始属性值。 | FocusEvent | ||
![]() | 用于在自定义 ActionScript 3.0 Event 类中实现 toString() 方法的实用程序函数。 | Event | |
![]() |
指示对象是否已经定义了指定的属性。 | Object | |
![]() | 检查是否已对事件调用 preventDefault() 方法。 | Event | |
![]() |
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
![]() | 如果可以取消事件的默认行为,则取消该行为。 | Event | |
![]() |
指示指定的属性是否存在、是否可枚举。 | Object | |
![]() |
设置循环操作动态属性的可用性。 | Object | |
![]() | 防止对事件流中当前节点中和所有后续节点中的事件侦听器进行处理。 | Event | |
![]() | 防止对事件流中当前节点的后续节点中的所有事件侦听器进行处理。 | Event | |
返回一个字符串,其中包含 FocusEvent 对象的所有属性。 | FocusEvent | ||
![]() |
返回指定对象的原始值。 | Object | |
| 常量 | 定义方 | ||
|---|---|---|---|
![]() | ACTIVATE : String = "activate" [静态] ACTIVATE 常量定义 activate 事件对象的 type 属性的值。 | Event | |
![]() | ADDED : String = "added" [静态] Event.ADDED 常量定义 added 事件对象的 type 属性值。 | Event | |
![]() | ADDED_TO_STAGE : String = "addedToStage" [静态] Event.ADDED_TO_STAGE 常量定义 addedToStage 事件对象的 type 属性值。 | Event | |
![]() | CANCEL : String = "cancel" [静态] Event.CANCEL 常量定义 cancel 事件对象的 type 属性的值。 | Event | |
![]() | CHANGE : String = "change" [静态] Event.CHANGE 常量定义 change 事件对象的 type 属性值。 | Event | |
![]() | CLEAR : String = "clear" [静态] Event.CLEAR 常量定义 clear 事件对象的 type 属性的值。 | Event | |
![]() | CLOSE : String = "close" [静态] Event.CLOSE 常量定义 close 事件对象的 type 属性的值。 | Event | |
![]() | [静态] Event.CLOSING 常量定义 closing 事件对象的 type 属性值。 | Event | |
![]() | COMPLETE : String = "complete" [静态] Event.COMPLETE 常量定义 complete 事件对象的 type 属性值。 | Event | |
![]() | CONNECT : String = "connect" [静态] Event.CONNECT 常量定义 connect 事件对象的 type 属性值。 | Event | |
![]() | COPY : String = "copy" [静态] 定义 copy 事件对象的 type 属性值。 | Event | |
![]() | CUT : String = "cut" [静态] 定义 cut 事件对象的 type 属性值。 | Event | |
![]() | DEACTIVATE : String = "deactivate" [静态] Event.DEACTIVATE 常量定义 deactivate 事件对象的 type 属性值。 | Event | |
![]() | DISPLAYING : String = "displaying" [静态] Event.DISPLAYING 常量定义 displaying 事件对象的 type 属性值。 | Event | |
![]() | ENTER_FRAME : String = "enterFrame" [静态] Event.ENTER_FRAME 常量定义 enterFrame 事件对象的 type 属性值。 | Event | |
![]() | EXIT_FRAME : String = "exitFrame" [静态] Event.EXIT_FRAME 常量定义 exitFrame 事件对象的 type 属性的值。 | Event | |
![]() | [静态] Event.EXITING 常量定义 exiting 事件对象的 type 属性值。 | Event | |
| FOCUS_IN : String = "focusIn" [静态] 定义 focusIn 事件对象的 type 属性值。 | FocusEvent | ||
| FOCUS_OUT : String = "focusOut" [静态] 定义 focusOut 事件对象的 type 属性值。 | FocusEvent | ||
![]() | FRAME_CONSTRUCTED : String = "frameConstructed" [静态] Event.FRAME_CONSTRUCTED 常量定义 frameConstructed 事件对象的 type 属性的值。 | Event | |
![]() | FULLSCREEN : String = "fullScreen" [静态] Event.FULL_SCREEN 常量定义 fullScreen 事件对象的 type 属性值。 | Event | |
![]() | [静态] Event.HTML_BOUNDS_CHANGE 常量定义 htmlBoundsChange 事件对象的 type 属性值。 | Event | |
![]() | [静态] Event.HTML_DOM_INITIALIZE 常量定义 htmlDOMInitialize 事件对象的 type 属性值。 | Event | |
![]() | [静态] Event.HTML_RENDER 常量定义 htmlRender 事件对象的 type 属性值。 | Event | |
![]() | ID3 : String = "id3" [静态] Event.ID3 常量定义 id3 事件对象的 type 属性值。 | Event | |
![]() | INIT : String = "init" [静态] Event.INIT 常量定义 init 事件对象的 type 属性值。 | Event | |
| KEY_FOCUS_CHANGE : String = "keyFocusChange" [静态] 定义 keyFocusChange 事件对象的 type 属性值。 | FocusEvent | ||
![]() | [静态] Event.LOCATION_CHANGE 常量定义 locationChange 事件对象的 type 属性值。 | Event | |
| MOUSE_FOCUS_CHANGE : String = "mouseFocusChange" [静态] 定义 mouseFocusChange 事件对象的 type 属性值。 | FocusEvent | ||
![]() | MOUSE_LEAVE : String = "mouseLeave" [静态] Event.MOUSE_LEAVE 常量定义 mouseLeave 事件对象的 type 属性值。 | Event | |
![]() | [静态] Event.NETWORK_CHANGE 常量定义 networkChange 事件对象的 type 属性值。 | Event | |
![]() | OPEN : String = "open" [静态] Event.OPEN 常量用于定义 open 事件对象的 type 属性值。 | Event | |
![]() | PASTE : String = "paste" [静态] Event.PASTE 常量定义 paste 事件对象的 type 属性的值。 | Event | |
![]() | REMOVED : String = "removed" [静态] Event.REMOVED 常量定义 removed 事件对象的 type 属性值。 | Event | |
![]() | REMOVED_FROM_STAGE : String = "removedFromStage" [静态] Event.REMOVED_FROM_STAGE 常量定义 removedFromStage 事件对象的 type 属性值。 | Event | |
![]() | RENDER : String = "render" [静态] Event.RENDER 常量定义 render 事件对象的 type 属性的值。 | Event | |
![]() | RESIZE : String = "resize" [静态] Event.RESIZE 常量定义 resize 事件对象的 type 属性的值。 | Event | |
![]() | SCROLL : String = "scroll" [静态] Event.SCROLL 常量定义 scroll 事件对象的 type 属性值。 | Event | |
![]() | SELECT : String = "select" [静态] Event.SELECT 常量定义 select 事件对象的 type 属性的值。 | Event | |
![]() | SELECT_ALL : String = "selectAll" [静态] Event.SELECT_ALL 常量定义 selectAll 事件对象的 type 属性的值。 | Event | |
![]() | SOUND_COMPLETE : String = "soundComplete" [静态] Event.SOUND_COMPLETE 常量定义 soundComplete 事件对象的 type 属性值。 | Event | |
![]() | TAB_CHILDREN_CHANGE : String = "tabChildrenChange" [静态] Event.TAB_CHILDREN_CHANGE 常量定义 tabChildrenChange 事件对象的 type 属性值。 | Event | |
![]() | TAB_ENABLED_CHANGE : String = "tabEnabledChange" [静态] Event.TAB_ENABLED_CHANGE 常量定义 tabEnabledChange 事件对象的 type 属性值。 | Event | |
![]() | TAB_INDEX_CHANGE : String = "tabIndexChange" [静态] Event.TAB_INDEX_CHANGE 常量定义 tabIndexChange 事件对象的 type 属性值。 | Event | |
![]() | UNLOAD : String = "unload" [静态] Event.UNLOAD 常量定义 unload 事件对象的 type 属性值。 | Event | |
![]() | [静态] Event.USER_IDLE 常量定义 userIdle 事件对象的 type 属性值。 | Event | |
![]() | [静态] Event.USER_PRESENT 常量定义 userPresent 事件对象的 type 属性值。 | Event | |
| 属性 |
direction:String [读写] | 运行时版本: | AIR 1.0 |
指定 focusIn 事件的焦点方向。
public function get direction():String public function set direction(value:String):void另请参见
| isRelatedObjectInaccessible | 属性 |
isRelatedObjectInaccessible:Boolean [读写] | 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 10 |
如果为 true,则 relatedObject 属性是出于与安全沙箱相关的原因而设置为 null 的。如果 relatedObject 的标称值是对其他沙箱中的 DisplayObject 的引用,则 relatedObject 将设置为 null,除非具有双向跨越此沙箱边界的权限。通过以下方式确立权限:从 SWF 文件调用 Security.allowDomain();或者通过从图像文件的服务器提供策略文件,然后在加载图像时设置 LoaderContext.checkPolicyFile 属性。
public function get isRelatedObjectInaccessible():Boolean public function set isRelatedObjectInaccessible(value:Boolean):void另请参见
| keyCode | 属性 |
keyCode:uint [读写] | 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
被按下以触发 keyFocusChange 事件的键的键控代码值。
public function get keyCode():uint public function set keyCode(value:uint):void| relatedObject | 属性 |
relatedObject:InteractiveObject [读写] | 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
对补充 InteractiveObject 实例的引用,焦点变化会对此实例造成影响。例如,发生 focusOut 事件时,relatedObject 表示已获得焦点的 InteractiveObject 实例。
在以下两种情况下,此属性的值可以为 null:不存在任何相关对象;存在相关对象,但该对象位于您无法访问的安全沙箱中。使用 isRelatedObjectInaccessible() 属性可确定上述哪一个原因适用。
public function get relatedObject():InteractiveObject public function set relatedObject(value:InteractiveObject):void另请参见
| shiftKey | 属性 |
shiftKey:Boolean [读写] | 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
指出是否激活了 Shift 功能键,若激活则值为 true。否则,值为 false。仅当 FocusEvent 的类型为 keyFocusChange 时,才使用此属性。
public function get shiftKey():Boolean public function set shiftKey(value:Boolean):void| FocusEvent | () | 构造函数 |
public function FocusEvent(type:String, bubbles:Boolean = true, cancelable:Boolean = false, relatedObject:InteractiveObject = null, shiftKey:Boolean = false, keyCode:uint = 0, direction:String = "none")| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
创建一个 Event 对象,其中包含有关焦点事件的特定信息。将 Event 对象作为参数传递给事件侦听器。
参数type:String —
事件的类型。可能的值为:FocusEvent.FOCUS_IN、FocusEvent.FOCUS_OUT、FocusEvent.KEY_FOCUS_CHANGE 和 FocusEvent.MOUSE_FOCUS_CHANGE。
| |
bubbles:Boolean (default = true) — 确定 Event 对象是否参与事件流的冒泡阶段。 | |
cancelable:Boolean (default = false) — 确定是否可以取消 Event 对象。 | |
relatedObject:InteractiveObject (default = null) —
指示受焦点更改影响的补充 InteractiveObject 实例。例如,发生 focusIn 事件时,relatedObject 表示已失去焦点的 InteractiveObject。
| |
shiftKey:Boolean (default = false) — 指示是否已激活 Shift 功能键。 | |
keyCode:uint (default = 0) —
指示按下以触发 keyFocusChange 事件的键的代码。
| |
direction:String (default = "none") —
指示激活目标交互式对象的方向。对于除 focusIn 事件以外的所有事件,设置为 FocusDirection.NONE(默认值)。
|
另请参见
| clone | () | 方法 |
override public function clone():Event| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
创建 FocusEvent 对象的副本,并设置每个属性的值以匹配原始属性值。
返回Event — 其属性值与原始属性值匹配的新 FocusEvent 对象。 |
| toString | () | 方法 |
override public function toString():String| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
返回一个字符串,其中包含 FocusEvent 对象的所有属性。字符串的格式如下:
[FocusEvent type=value bubbles=value cancelable=value relatedObject=value shiftKey=value ]
String — 一个字符串,其中包含 FocusEvent 对象的所有属性。 |
| FOCUS_IN | 常量 |
public static const FOCUS_IN:String = "focusIn"| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
定义 focusIn 事件对象的 type 属性值。
此事件具有以下属性:
| 属性 | 值 |
|---|---|
bubbles
|
true
|
cancelable
|
false;没有要取消的默认行为。
|
currentTarget
| 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
keyCode
|
0;仅应用于 keyFocusChange 事件。
|
relatedObject
| 受焦点更改影响的补充 InteractiveObject 实例。 |
shiftKey
|
false;仅应用于 keyFocusChange 事件。
|
target
|
刚刚获得焦点的 InteractiveObject 实例。target 不一定是显示列表中注册此事件侦听器的对象。请使用 currentTarget 属性来访问显示列表中当前正在处理此事件的对象。
|
direction
|
焦点的分配方向。此属性报告舞台的 assignFocus() 方法的 direction 参数。如果通过其他方式更改焦点,则该值将始终为 FocusDirection.NONE。仅适用于 focusIn 事件。对于所有其他焦点事件,该值将为 FocusDirection.NONE。
|
另请参见
| FOCUS_OUT | 常量 |
public static const FOCUS_OUT:String = "focusOut"| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
定义 focusOut 事件对象的 type 属性值。
此事件具有以下属性:
| 属性 | 值 |
|---|---|
bubbles
|
true
|
cancelable
|
false;没有要取消的默认行为。
|
currentTarget
| 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
keyCode
|
0;仅应用于 keyFocusChange 事件。
|
relatedObject
| 受焦点更改影响的补充 InteractiveObject 实例。 |
shiftKey
|
false;仅应用于 keyFocusChange 事件。
|
target
|
刚刚失去焦点的 InteractiveObject 实例。target 不一定是显示列表中注册此事件侦听器的对象。请使用 currentTarget 属性来访问显示列表中当前正在处理此事件的对象。
|
另请参见
| KEY_FOCUS_CHANGE | 常量 |
public static const KEY_FOCUS_CHANGE:String = "keyFocusChange"| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
定义 keyFocusChange 事件对象的 type 属性值。
此事件具有以下属性:
| 属性 | 值 |
|---|---|
bubbles
|
true
|
cancelable
|
true;调用 preventDefault() 方法以取消默认行为。
|
currentTarget
| 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
keyCode
|
被按下以触发 keyFocusChange 事件的键的键控代码值。
|
relatedObject
| 受焦点更改影响的补充 InteractiveObject 实例。 |
shiftKey
|
如果 Shift 功能键处于激活状态,则为 true;否则为 false。
|
target
|
当前具有焦点的 InteractiveObject 实例。target 不一定是显示列表中注册此事件侦听器的对象。请使用 currentTarget 属性来访问显示列表中当前正在处理此事件的对象。
|
另请参见
| MOUSE_FOCUS_CHANGE | 常量 |
public static const MOUSE_FOCUS_CHANGE:String = "mouseFocusChange"| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
定义 mouseFocusChange 事件对象的 type 属性值。
此事件具有以下属性:
| 属性 | 值 |
|---|---|
bubbles
|
true
|
cancelable
|
true;调用 preventDefault() 方法以取消默认行为。
|
currentTarget
| 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
keyCode
|
0;仅应用于 keyFocusChange 事件。
|
relatedObject
| 受焦点更改影响的补充 InteractiveObject 实例。 |
shiftKey
|
false;仅应用于 keyFocusChange 事件。
|
target
|
当前具有焦点的 InteractiveObject 实例。target 不一定是显示列表中注册此事件侦听器的对象。请使用 currentTarget 属性来访问显示列表中当前正在处理此事件的对象。
|
另请参见
FocusEventExample 和 CustomSprite 类来说明如何将焦点与在舞台上绘制的项目结合使用,以捕获事件和输出信息。本示例将执行以下任务:
child(属于 Sprite 类型)和 childCount(属于 uint 类型)。
for 循环在 (0,0) 处创建五个浅蓝色正方形。该循环从将 child 分配给新的 CustomSprite 实例开始。每次创建 CustomSprite 对象时,会执行以下操作:
size 属性设置为 50 像素,bgColor 设置为浅蓝色。
buttonMode 和 useHandCursor 属性在构造函数中设置为 true。
click 的事件侦听器以及关联的订阅者 clickHandler()。订阅者方法创建类型为 Sprite 的局部变量 target 并为其赋值以确定单击了其中的哪一个框。然后将舞台的焦点分配给 target。
draw() 方法,它可以通过调用 Graphics 类的 beginFill()、drawRect() 和 endFill() 方法以及实例属性来创建一个 50 x 50 像素的正方形。
configureListeners() 方法,它将实例化三个事件侦听器/订阅者:
focusIn / focusInHandler() 在单击显示列表对象(框)的 click 事件后进行调度。
focusOut / focusOutHandler() 在单击另一个框或者焦点离开舞台(例如,通过在 Flash Player 外单击)时进行调度。
keyFocusChange / keyFocusChangeHandler() 在使用 Tab 键或者向左键或向右键选择显示列表对象时进行调度。keyFocusChangeHandler() 方法可以捕获向左键和向右键,而调用 preventDefault() 方法可以禁用这两个键。
for 循环中,每个正方形都通过 addChild() 添加到显示列表中并显示(所有正方形都在同一个区域中)。
refreshLayout(),以便沿显示屏顶部 (y = 0) 每隔 5 个像素显示一个正方形来分布橙色的正方形。
package {
import flash.display.Sprite;
import flash.display.DisplayObject;
import flash.events.FocusEvent;
import flash.events.IEventDispatcher;
public class FocusEventExample extends Sprite {
private var gutter:uint = 5;
private var childCount:uint = 5;
public function FocusEventExample() {
var child:Sprite;
for(var i:uint; i < childCount; i++) {
child = new CustomSprite();
configureListeners(child);
addChild(child);
}
refreshLayout();
}
private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(FocusEvent.FOCUS_IN, focusInHandler);
dispatcher.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler);
dispatcher.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler);
dispatcher.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler);
}
private function refreshLayout():void {
var ln:uint = numChildren;
var child:DisplayObject = getChildAt(0);
var lastChild:DisplayObject = child;
for(var i:uint = 1; i < ln; i++) {
child = getChildAt(i);
child.x = lastChild.x + lastChild.width + gutter;
lastChild = child;
}
}
private function focusInHandler(event:FocusEvent):void {
var target:CustomSprite = CustomSprite(event.target);
trace("focusInHandler: " + target.name);
}
private function focusOutHandler(event:FocusEvent):void {
var target:CustomSprite = CustomSprite(event.target);
trace("focusOutHandler: " + target.name);
}
private function keyFocusChangeHandler(event:FocusEvent):void {
if(event.keyCode == 39 || event.keyCode == 37){
event.preventDefault()
}
var target:CustomSprite = CustomSprite(event.target);
trace("keyFocusChangeHandler: " + target.name);
}
private function mouseFocusChangeHandler(event:FocusEvent):void {
var target:CustomSprite = CustomSprite(event.target);
trace("mouseFocusChangeHandler: " + target.name);
}
}
}
import flash.display.Sprite;
import flash.events.MouseEvent;
class CustomSprite extends Sprite {
private var size:uint = 50;
private var bgColor:uint = 0x00CCFF;
public function CustomSprite() {
buttonMode = true;
useHandCursor = true;
addEventListener(MouseEvent.CLICK, clickHandler);
draw(size, size);
}
private function draw(w:uint, h:uint):void {
graphics.beginFill(bgColor);
graphics.drawRect(0, 0, w, h);
graphics.endFill();
}
private function clickHandler(event:MouseEvent):void {
var target:Sprite = Sprite(event.target);
trace("clickHandler: " + target.name);
stage.focus = target;
}
}