flash.events
public class FocusEvent
继承FocusEvent Inheritance Event Inheritance Object

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

用户将焦点从显示列表中的一个对象更改到另一个对象时,Flash® Player 将调度 FocusEvent 对象。 有四种类型的焦点事件:

查看示例




公共 属性
 属性定义方
 Inheritedbubbles : Boolean
[read-only] 指示事件是否为冒泡事件。
Event
 Inheritedcancelable : Boolean
[read-only] 指示是否可以阻止与事件相关联的行为。
Event
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
 InheritedcurrentTarget : Object
[read-only] 当前正在使用某个事件侦听器处理 Event 对象的对象。
Event
 InheritedeventPhase : uint
[read-only] 事件流中的当前阶段。
Event
  keyCode : uint
被按下以触发 keyFocusChange 事件的键的键控代码值。
FocusEvent
 Inheritedprototype : Object
[static] 对类或函数对象的原型对象的引用。
Object
  relatedObject : InteractiveObject
对补充 InteractiveObject 实例的引用,焦点变化会对此实例造成影响。
FocusEvent
  shiftKey : Boolean
指出是否激活了 Shift 功能键,若激活则值为 true。
FocusEvent
 Inheritedtarget : Object
[read-only] 事件目标。
Event
 Inheritedtype : String
[read-only] 事件的类型。
Event
公共 方法
 方法定义方
  
FocusEvent(type:String, bubbles:Boolean = true, cancelable:Boolean = false, relatedObject:InteractiveObject = null, shiftKey:Boolean = false, keyCode:uint = 0)
创建一个 Event 对象,其中包含有关焦点事件的特定信息。
FocusEvent
  
创建 FocusEvent 对象的副本,并设置每个属性的值以匹配原始属性值。
FocusEvent
 Inherited
formatToString(className:String, ... arguments):String
在自定义 Event 类中实现 toString() 方法的实用程序函数。
Event
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
检查是否已对事件调用 preventDefault()。
Event
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
如果可以取消事件的默认行为,则取消该行为。
Event
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
防止对事件流中当前节点中和所有后续节点中的事件侦听器进行处理。
Event
 Inherited
防止对事件流中当前节点的后续节点中的所有事件侦听器进行处理。
Event
  
返回一个字符串,其中包含 FocusEvent 对象的所有属性。
FocusEvent
 Inherited
返回指定对象的原始值。
Object
公共 常量
 常量定义方
 InheritedACTIVATE : String = "activate"
[static] 定义 activate 事件对象的 type 属性值。
Event
 InheritedADDED : String = "added"
[static] 定义 added 事件对象的 type 属性值。
Event
 InheritedADDED_TO_STAGE : String = "addedToStage"
[static] 定义 addedToStage 事件对象的 type 属性值。
Event
 InheritedCANCEL : String = "cancel"
[static] 定义 cancel 事件对象的 type 属性值。
Event
 InheritedCHANGE : String = "change"
[static] 定义 change 事件对象的 type 属性值。
Event
 InheritedCLOSE : String = "close"
[static] 定义 close 事件对象的 type 属性值。
Event
 InheritedCOMPLETE : String = "complete"
[static] 定义 complete 事件对象的 type 属性值。
Event
 InheritedCONNECT : String = "connect"
[static] 定义 connect 事件对象的 type 属性值。
Event
 InheritedDEACTIVATE : String = "deactivate"
[static] 定义 deactivate 事件对象的 type 属性值。
Event
 InheritedENTER_FRAME : String = "enterFrame"
[static] 定义 enterFrame 事件对象的 type 属性值。
Event
  FOCUS_IN : String = "focusIn"
[static] 定义 focusIn 事件对象的 type 属性值。
FocusEvent
  FOCUS_OUT : String = "focusOut"
[static] 定义 focusOut 事件对象的 type 属性值。
FocusEvent
 InheritedFULLSCREEN : String = "fullScreen"
[static] 定义 fullScreen 事件对象的 type 属性值。
Event
 InheritedID3 : String = "id3"
[static] 定义 id3 事件对象的 type 属性值。
Event
 InheritedINIT : String = "init"
[static] 定义 init 事件对象的 type 属性值。
Event
  KEY_FOCUS_CHANGE : String = "keyFocusChange"
[static] 定义 keyFocusChange 事件对象的 type 属性值。
FocusEvent
  MOUSE_FOCUS_CHANGE : String = "mouseFocusChange"
[static] 定义 mouseFocusChange 事件对象的 type 属性值。
FocusEvent
 InheritedMOUSE_LEAVE : String = "mouseLeave"
[static] 定义 mouseLeave 事件对象的 type 属性值。
Event
 InheritedOPEN : String = "open"
[static] 定义 open 事件对象的 type 属性值。
Event
 InheritedREMOVED : String = "removed"
[static] 定义 removed 事件对象的 type 属性值。
Event
 InheritedREMOVED_FROM_STAGE : String = "removedFromStage"
[static] 定义 removedFromStage 事件对象的 type 属性值。
Event
 InheritedRENDER : String = "render"
[static] 定义 render 事件对象的 type 属性值。
Event
 InheritedRESIZE : String = "resize"
[static] 定义 resize 事件对象的 type 属性值。
Event
 InheritedSCROLL : String = "scroll"
[static] 定义 scroll 事件对象的 type 属性值。
Event
 InheritedSELECT : String = "select"
[static] 定义 select 事件对象的 type 属性值。
Event
 InheritedSOUND_COMPLETE : String = "soundComplete"
[static] 定义 soundComplete 事件对象的 type 属性值。
Event
 InheritedTAB_CHILDREN_CHANGE : String = "tabChildrenChange"
[static] 定义 tabChildrenChange 事件对象的 type 属性值。
Event
 InheritedTAB_ENABLED_CHANGE : String = "tabEnabledChange"
[static] 定义 tabEnabledChange 事件对象的 type 属性值。
Event
 InheritedTAB_INDEX_CHANGE : String = "tabIndexChange"
[static] 定义 tabIndexChange 事件对象的 type 属性值。
Event
 InheritedUNLOAD : String = "unload"
[static] 定义 unload 事件对象的 type 属性值。
Event
属性详细信息
keyCode属性
keyCode:uint  [read-write]

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

被按下以触发 keyFocusChange 事件的键的键控代码值。


实现
    public function get keyCode():uint
    public function set keyCode(value:uint):void
relatedObject属性 
relatedObject:InteractiveObject  [read-write]

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

对补充 InteractiveObject 实例的引用,焦点变化会对此实例造成影响。 例如,发生 focusOut 事件时,relatedObject 表示已获得焦点的 InteractiveObject 实例。


实现
    public function get relatedObject():InteractiveObject
    public function set relatedObject(value:InteractiveObject):void
shiftKey属性 
shiftKey:Boolean  [read-write]

语言版本 : ActionScript 3.0
Player 版本 : 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)

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

创建一个 Event 对象,其中包含有关焦点事件的特定信息。 将 Event 对象作为参数传递给事件侦听器。

参数
type:String — 事件的类型。 可能的值为:FocusEvent.FOCUS_INFocusEvent.FOCUS_OUTFocusEvent.KEY_FOCUS_CHANGEFocusEvent.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 事件的键的代码。

另请参见

方法详细信息
clone()方法
public override function clone():Event

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

创建 FocusEvent 对象的副本,并设置每个属性的值以匹配原始属性值。

返回
Event — 其属性值与原始属性值匹配的新 FocusEvent 对象。
toString()方法 
public override function toString():String

语言版本 : ActionScript 3.0
Player 版本 : 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
Player 版本 : Flash Player 9

定义 focusIn 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblestrue
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
keyCode0;仅应用于 keyFocusChange 事件。
relatedObject受焦点更改影响的补充 InteractiveObject 实例。
shiftKeyfalse;仅应用于 keyFocusChange 事件。
target刚刚获得焦点的 InteractiveObject 实例。 target 不一定是显示列表中注册此事件侦听器的对象。 请使用 currentTarget 属性来访问显示列表中当前正在处理此事件的对象。

另请参见

FOCUS_OUT常量 
public static const FOCUS_OUT:String = "focusOut"

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

定义 focusOut 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblestrue
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
keyCode0;仅应用于 keyFocusChange 事件。
relatedObject受焦点更改影响的补充 InteractiveObject 实例。
shiftKeyfalse;仅应用于 keyFocusChange 事件。
target刚刚失去焦点的 InteractiveObject 实例。 target 不一定是显示列表中注册此事件侦听器的对象。 请使用 currentTarget 属性来访问显示列表中当前正在处理此事件的对象。

另请参见

KEY_FOCUS_CHANGE常量 
public static const KEY_FOCUS_CHANGE:String = "keyFocusChange"

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

定义 keyFocusChange 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblestrue
cancelabletrue;调用 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
Player 版本 : Flash Player 9

定义 mouseFocusChange 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblestrue
cancelabletrue;调用 preventDefault() 方法以取消默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
keyCode0;仅应用于 keyFocusChange 事件。
relatedObject受焦点更改影响的补充 InteractiveObject 实例。
shiftKeyfalse;仅应用于 keyFocusChange 事件。
target当前具有焦点的 InteractiveObject 实例。 target 不一定是显示列表中注册此事件侦听器的对象。 请使用 currentTarget 属性来访问显示列表中当前正在处理此事件的对象。

另请参见

示例 如何使用示例

以下示例使用 FocusEventExampleCustomSprite 类来说明如何将焦点与在舞台上绘制的项目结合使用,以捕获事件和输出信息。 本示例将执行以下任务:
  1. 它声明属性 child(属于 Sprite 类型)和 childCount(属于 uint 类型)。
  2. 一个 for 循环在 (0,0) 处创建五个浅蓝色正方形。 该循环从将 child 分配给新的 CustomSprite 实例开始。 每次创建 CustomSprite 对象时,会执行以下操作:
    • 类型为 uint 的 size 属性设置为 50 像素,bgColor 设置为浅蓝色。
    • Sprite 类的 buttonModeuseHandCursor 属性在构造函数中设置为 true
    • 实例化类型为 click 的事件侦听器以及关联的订阅者 clickHandler()。 订阅者方法创建类型为 Sprite 的局部变量 target 并为其赋值以确定单击了其中的哪一个框。 然后将舞台的焦点分配给 target
    • 调用 draw() 方法,它可以通过调用 Graphics 类的 beginFill()drawRect()endFill() 方法以及实例属性来创建一个 50 x 50 像素的正方形。
  3. 在 for 循环中,调用 configureListeners() 方法,它将实例化三个事件侦听器/订阅者:
    • focusIn / focusInHandler() 在单击显示列表对象(框)的 click 事件后进行调度。
    • focusOut / focusOutHandler() 在单击另一个框或者焦点离开舞台(例如,通过在 Flash Player 外单击)时进行调度。
    • keyFocusChange / keyFocusChangeHandler() 在使用 Tab 键或者向左键或向右键选择显示列表对象时进行调度。 keyFocusChangeHandler() 方法可以捕获向左键和向右键,而调用 preventDefault() 方法可以禁用这两个键。
  4. for 循环中,每个正方形都通过 addChild() 添加到显示列表中并显示(所有正方形都在同一个区域中)。
  5. 然后构造函数调用 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;
    }
}




 

评论添加到页面后给我发送电子邮件 | 评论报告

当前页: http://livedocs.adobe.com/flash/9.0_cn/ActionScriptLangRefV3/flash/events/FocusEvent.html