Adobe® Flex® 4 Language Reference
Hide Packages and Classes List |  Packages  |  Classes  |  Index  |  Appendixes
flash.events 
FocusEvent 
Packageflash.events
Classpublic class FocusEvent
InheritanceFocusEvent Inheritance Event Inheritance Object

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 9, AIR 1.0

An object dispatches a FocusEvent object when the user changes the focus from one object in the display list to another. There are four types of focus events:
  • FocusEvent.FOCUS_IN
  • FocusEvent.FOCUS_OUT
  • FocusEvent.KEY_FOCUS_CHANGE
  • FocusEvent.MOUSE_FOCUS_CHANGE

View the examples



Public Properties
 PropertyDefined By
 Inheritedbubbles : Boolean
[read-only] Indicates whether an event is a bubbling event.
Event
 Inheritedcancelable : Boolean
[read-only] Indicates whether the behavior associated with the event can be prevented.
Event
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
 InheritedcurrentTarget : Object
[read-only] The object that is actively processing the Event object with an event listener.
Event
  AIR-only direction : String
Specifies direction of focus for a focusIn event.
FocusEvent
 InheritedeventPhase : uint
[read-only] The current phase in the event flow.
Event
  isRelatedObjectInaccessible : Boolean
If true, the relatedObject property is set to null for reasons related to security sandboxes.
FocusEvent
  keyCode : uint
The key code value of the key pressed to trigger a keyFocusChange event.
FocusEvent
 Inheritedprototype : Object
[static] A reference to the prototype object of a class or function object.
Object
  relatedObject : InteractiveObject
A reference to the complementary InteractiveObject instance that is affected by the change in focus.
FocusEvent
  shiftKey : Boolean
Indicates whether the Shift key modifier is activated, in which case the value is true.
FocusEvent
 Inheritedtarget : Object
[read-only] The event target.
Event
 Inheritedtype : String
[read-only] The type of event.
Event
Public Methods
 MethodDefined By
  
FocusEvent(type:String, bubbles:Boolean = true, cancelable:Boolean = false, relatedObject:InteractiveObject = null, shiftKey:Boolean = false, keyCode:uint = 0, direction:String = "none")
Creates an Event object with specific information relevant to focus events.
FocusEvent
  
[override] Creates a copy of the FocusEvent object and sets the value of each property to match that of the original.
FocusEvent
 Inherited
formatToString(className:String, ... arguments):String
A utility function for implementing the toString() method in custom ActionScript 3.0 Event classes.
Event
 Inherited
Indicates whether an object has a specified property defined.
Object
 Inherited
Checks whether the preventDefault() method has been called on the event.
Event
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
 Inherited
Cancels an event's default behavior if that behavior can be canceled.
Event
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
 Inherited
Prevents processing of any event listeners in the current node and any subsequent nodes in the event flow.
Event
 Inherited
Prevents processing of any event listeners in nodes subsequent to the current node in the event flow.
Event
 Inherited
Returns the string representation of this object, formatted according to locale-specific conventions.
Object
  
[override] Returns a string that contains all the properties of the FocusEvent object.
FocusEvent
 Inherited
Returns the primitive value of the specified object.
Object
Public Constants
 ConstantDefined By
 InheritedACTIVATE : String = "activate"
[static] The ACTIVATE constant defines the value of the type property of an activate event object.
Event
 InheritedADDED : String = "added"
[static] The Event.ADDED constant defines the value of the type property of an added event object.
Event
 InheritedADDED_TO_STAGE : String = "addedToStage"
[static] The Event.ADDED_TO_STAGE constant defines the value of the type property of an addedToStage event object.
Event
 InheritedCANCEL : String = "cancel"
[static] The Event.CANCEL constant defines the value of the type property of a cancel event object.
Event
 InheritedCHANGE : String = "change"
[static] The Event.CHANGE constant defines the value of the type property of a change event object.
Event
 InheritedCLEAR : String = "clear"
[static] The Event.CLEAR constant efines the value of the type property of a clear event object.
Event
 InheritedCLOSE : String = "close"
[static] The Event.CLOSE constant defines the value of the type property of a close event object.
Event
 InheritedAIR-only CLOSING : String = "closing"
[static] The Event.CLOSING constant defines the value of the type property of a closing event object.
Event
 InheritedCOMPLETE : String = "complete"
[static] The Event.COMPLETE constant defines the value of the type property of a complete event object.
Event
 InheritedCONNECT : String = "connect"
[static] The Event.CONNECT constant defines the value of the type property of a connect event object.
Event
 InheritedCOPY : String = "copy"
[static] Defines the value of the type property of a copy event object.
Event
 InheritedCUT : String = "cut"
[static] Defines the value of the type property of a cut event object.
Event
 InheritedDEACTIVATE : String = "deactivate"
[static] The Event.DEACTIVATE constant defines the value of the type property of a deactivate event object.
Event
 InheritedDISPLAYING : String = "displaying"
[static] The Event.DISPLAYING constant defines the value of the type property of a displaying event object.
Event
 InheritedENTER_FRAME : String = "enterFrame"
[static] The Event.ENTER_FRAME constant defines the value of the type property of an enterFrame event object.
Event
 InheritedEXIT_FRAME : String = "exitFrame"
[static] The Event.EXIT_FRAME constant defines the value of the type property of an exitFrame event object.
Event
 InheritedAIR-only EXITING : String = "exiting"
[static] The Event.EXITING constant defines the value of the type property of an exiting event object.
Event
  FOCUS_IN : String = "focusIn"
[static] Defines the value of the type property of a focusIn event object.
FocusEvent
  FOCUS_OUT : String = "focusOut"
[static] Defines the value of the type property of a focusOut event object.
FocusEvent
 InheritedFRAME_CONSTRUCTED : String = "frameConstructed"
[static] The Event.FRAME_CONSTRUCTED constant defines the value of the type property of an frameConstructed event object.
Event
 InheritedFULLSCREEN : String = "fullScreen"
[static] The Event.FULL_SCREEN constant defines the value of the type property of a fullScreen event object.
Event
 InheritedAIR-only HTML_BOUNDS_CHANGE : String = "htmlBoundsChange"
[static] The Event.HTML_BOUNDS_CHANGE constant defines the value of the type property of an htmlBoundsChange event object.
Event
 InheritedAIR-only HTML_DOM_INITIALIZE : String = "htmlDOMInitialize"
[static] The Event.HTML_DOM_INITIALIZE constant defines the value of the type property of an htmlDOMInitialize event object.
Event
 InheritedAIR-only HTML_RENDER : String = "htmlRender"
[static] The Event.HTML_RENDER constant defines the value of the type property of an htmlRender event object.
Event
 InheritedID3 : String = "id3"
[static] The Event.ID3 constant defines the value of the type property of an id3 event object.
Event
 InheritedINIT : String = "init"
[static] The Event.INIT constant defines the value of the type property of an init event object.
Event
  KEY_FOCUS_CHANGE : String = "keyFocusChange"
[static] Defines the value of the type property of a keyFocusChange event object.
FocusEvent
 InheritedAIR-only LOCATION_CHANGE : String = "locationChange"
[static] The Event.LOCATION_CHANGE constant defines the value of the type property of a locationChange event object.
Event
  MOUSE_FOCUS_CHANGE : String = "mouseFocusChange"
[static] Defines the value of the type property of a mouseFocusChange event object.
FocusEvent
 InheritedMOUSE_LEAVE : String = "mouseLeave"
[static] The Event.MOUSE_LEAVE constant defines the value of the type property of a mouseLeave event object.
Event
 InheritedAIR-only NETWORK_CHANGE : String = "networkChange"
[static] The Event.NETWORK_CHANGE constant defines the value of the type property of a networkChange event object.
Event
 InheritedOPEN : String = "open"
[static] The Event.OPEN constant defines the value of the type property of an open event object.
Event
 InheritedPASTE : String = "paste"
[static] The Event.PASTE constant defines the value of the type property of a paste event object.
Event
 InheritedREMOVED : String = "removed"
[static] The Event.REMOVED constant defines the value of the type property of a removed event object.
Event
 InheritedREMOVED_FROM_STAGE : String = "removedFromStage"
[static] The Event.REMOVED_FROM_STAGE constant defines the value of the type property of a removedFromStage event object.
Event
 InheritedRENDER : String = "render"
[static] The Event.RENDER constant defines the value of the type property of a render event object.
Event
 InheritedRESIZE : String = "resize"
[static] The Event.RESIZE constant defines the value of the type property of a resize event object.
Event
 InheritedSCROLL : String = "scroll"
[static] The Event.SCROLL constant defines the value of the type property of a scroll event object.
Event
 InheritedSELECT : String = "select"
[static] The Event.SELECT constant defines the value of the type property of a select event object.
Event
 InheritedSELECT_ALL : String = "selectAll"
[static] The Event.SELECT_ALL constant defines the value of the type property of a selectAll event object.
Event
 InheritedSOUND_COMPLETE : String = "soundComplete"
[static] The Event.SOUND_COMPLETE constant defines the value of the type property of a soundComplete event object.
Event
 InheritedTAB_CHILDREN_CHANGE : String = "tabChildrenChange"
[static] The Event.TAB_CHILDREN_CHANGE constant defines the value of the type property of a tabChildrenChange event object.
Event
 InheritedTAB_ENABLED_CHANGE : String = "tabEnabledChange"
[static] The Event.TAB_ENABLED_CHANGE constant defines the value of the type property of a tabEnabledChange event object.
Event
 InheritedTAB_INDEX_CHANGE : String = "tabIndexChange"
[static] The Event.TAB_INDEX_CHANGE constant defines the value of the type property of a tabIndexChange event object.
Event
 InheritedUNLOAD : String = "unload"
[static] The Event.UNLOAD constant defines the value of the type property of an unload event object.
Event
 InheritedAIR-only USER_IDLE : String = "userIdle"
[static] The Event.USER_IDLE constant defines the value of the type property of a userIdle event object.
Event
 InheritedAIR-only USER_PRESENT : String = "userPresent"
[static] The Event.USER_PRESENT constant defines the value of the type property of a userPresent event object.
Event
Property Detail
AIR-only 

direction

property
direction:String

Runtime Versions: AIR 1.0, AIR 1.0

Specifies direction of focus for a focusIn event.



Implementation
    public function get direction():String
    public function set direction(value:String):void

See also

isRelatedObjectInaccessible

property 
isRelatedObjectInaccessible:Boolean

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 10, AIR 1.0

If true, the relatedObject property is set to null for reasons related to security sandboxes. If the nominal value of relatedObject is a reference to a DisplayObject in another sandbox, relatedObject is set to null unless there is permission in both directions across this sandbox boundary. Permission is established by calling Security.allowDomain() from a SWF file, or by providing a policy file from the server of an image file, and setting the LoaderContext.checkPolicyFile property when loading the image.



Implementation
    public function get isRelatedObjectInaccessible():Boolean
    public function set isRelatedObjectInaccessible(value:Boolean):void

See also

keyCode

property 
keyCode:uint

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 9, AIR 1.0

The key code value of the key pressed to trigger a keyFocusChange event.



Implementation
    public function get keyCode():uint
    public function set keyCode(value:uint):void

relatedObject

property 
relatedObject:InteractiveObject

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 9, AIR 1.0

A reference to the complementary InteractiveObject instance that is affected by the change in focus. For example, when a focusOut event occurs, the relatedObject represents the InteractiveObject instance that has gained focus.

The value of this property can be null in two circumstances: if there no related object, or there is a related object, but it is in a security sandbox to which you don't have access. Use the isRelatedObjectInaccessible() property to determine which of these reasons applies.



Implementation
    public function get relatedObject():InteractiveObject
    public function set relatedObject(value:InteractiveObject):void

See also

shiftKey

property 
shiftKey:Boolean

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 9, AIR 1.0

Indicates whether the Shift key modifier is activated, in which case the value is true. Otherwise, the value is false. This property is used only if the FocusEvent is of type keyFocusChange.



Implementation
    public function get shiftKey():Boolean
    public function set shiftKey(value:Boolean):void
Constructor Detail

FocusEvent

()Constructor
public function FocusEvent(type:String, bubbles:Boolean = true, cancelable:Boolean = false, relatedObject:InteractiveObject = null, shiftKey:Boolean = false, keyCode:uint = 0, direction:String = "none")

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 9, AIR 1.0

Creates an Event object with specific information relevant to focus events. Event objects are passed as parameters to event listeners.

Parameters
type:String — The type of the event. Possible values are: FocusEvent.FOCUS_IN, FocusEvent.FOCUS_OUT, FocusEvent.KEY_FOCUS_CHANGE, and FocusEvent.MOUSE_FOCUS_CHANGE.
 
bubbles:Boolean (default = true) — Determines whether the Event object participates in the bubbling stage of the event flow.
 
cancelable:Boolean (default = false) — Determines whether the Event object can be canceled.
 
relatedObject:InteractiveObject (default = null) — Indicates the complementary InteractiveObject instance that is affected by the change in focus. For example, when a focusIn event occurs, relatedObject represents the InteractiveObject that has lost focus.
 
shiftKey:Boolean (default = false) — Indicates whether the Shift key modifier is activated.
 
keyCode:uint (default = 0) — Indicates the code of the key pressed to trigger a keyFocusChange event.
 
direction:String (default = "none") — Indicates from which direction the target interactive object is being activated. Set to FocusDirection.NONE (the default value) for all events other than focusIn.

See also

Method Detail

clone

()method
override public function clone():Event

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 9, AIR 1.0

Creates a copy of the FocusEvent object and sets the value of each property to match that of the original.

Returns
Event — A new FocusEvent object with property values that match those of the original.

toString

()method 
override public function toString():String

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 9, AIR 1.0

Returns a string that contains all the properties of the FocusEvent object. The string is in the following format:

[FocusEvent type=value bubbles=value cancelable=value relatedObject=value shiftKey=value]

Returns
String — A string that contains all the properties of the FocusEvent object.
Constant Detail

FOCUS_IN

Constant
public static const FOCUS_IN:String = "focusIn"

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 9, AIR 1.0

Defines the value of the type property of a focusIn event object.

This event has the following properties:

PropertyValue
bubblestrue
cancelablefalse; there is no default behavior to cancel.
currentTargetThe object that is actively processing the Event object with an event listener.
keyCode0; applies only to keyFocusChange events.
relatedObjectThe complementary InteractiveObject instance that is affected by the change in focus.
shiftKeyfalse; applies only to keyFocusChange events.
targetThe InteractiveObject instance that has just received focus. The target is not always the object in the display list that registered the event listener. Use the currentTarget property to access the object in the display list that is currently processing the event.
directionThe direction from which focus was assigned. This property reports the value of the direction parameter of the assignFocus() method of the stage. If the focus changed through some other means, the value will always be FocusDirection.NONE. Applies only to focusIn events. For all other focus events the value will be FocusDirection.NONE.

See also

FOCUS_OUT

Constant 
public static const FOCUS_OUT:String = "focusOut"

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 9, AIR 1.0

Defines the value of the type property of a focusOut event object.

This event has the following properties:

PropertyValue
bubblestrue
cancelablefalse; there is no default behavior to cancel.
currentTargetThe object that is actively processing the Event object with an event listener.
keyCode0; applies only to keyFocusChange events.
relatedObjectThe complementary InteractiveObject instance that is affected by the change in focus.
shiftKeyfalse; applies only to keyFocusChange events.
targetThe InteractiveObject instance that has just lost focus. The target is not always the object in the display list that registered the event listener. Use the currentTarget property to access the object in the display list that is currently processing the event.

See also

KEY_FOCUS_CHANGE

Constant 
public static const KEY_FOCUS_CHANGE:String = "keyFocusChange"

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 9, AIR 1.0

Defines the value of the type property of a keyFocusChange event object.

This event has the following properties:

PropertyValue
bubblestrue
cancelabletrue; call the preventDefault() method to cancel default behavior.
currentTargetThe object that is actively processing the Event object with an event listener.
keyCodeThe key code value of the key pressed to trigger a keyFocusChange event.
relatedObjectThe complementary InteractiveObject instance that is affected by the change in focus.
shiftKeytrue if the Shift key modifier is activated; false otherwise.
targetThe InteractiveObject instance that currently has focus. The target is not always the object in the display list that registered the event listener. Use the currentTarget property to access the object in the display list that is currently processing the event.

See also

MOUSE_FOCUS_CHANGE

Constant 
public static const MOUSE_FOCUS_CHANGE:String = "mouseFocusChange"

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 9, AIR 1.0

Defines the value of the type property of a mouseFocusChange event object.

This event has the following properties:

PropertyValue
bubblestrue
cancelabletrue; call the preventDefault() method to cancel default behavior.
currentTargetThe object that is actively processing the Event object with an event listener.
keyCode0; applies only to keyFocusChange events.
relatedObjectThe complementary InteractiveObject instance that is affected by the change in focus.
shiftKeyfalse; applies only to keyFocusChange events.
targetThe InteractiveObject instance that currently has focus. The target is not always the object in the display list that registered the event listener. Use the currentTarget property to access the object in the display list that is currently processing the event.

See also

FocusEventExample.as

The following example uses the FocusEventExample and CustomSprite classes to show how focus can be used in conjunction with items drawn on the Stage to capture events and print information. This example carries out the following tasks:
  1. It declares the properties child (of type Sprite) and childCount (of type uint).
  2. A for loop creates five light blue squares at (0,0). It begins by assigning child to a new CustomSprite instance. Each time a CustomSprite object is created, the following happens:
    • The size property of type uint is set to 50 pixels and bgColor is set to light blue.
    • The buttonMode and useHandCursor properties of the Sprite class are set to true within the constructor.
    • An event listener of type click is instantiated, along with the associated subscriber clickHandler(). The subscriber method creates a local variable target of type Sprite and assigns it whichever box was clicked. The Stage's focus is then assigned to target.
    • The draw() method is called, which creates a 50 x 50 pixel square by calling the beginFill(), drawRect(), and endFill() methods of the Graphics class and the instance properties.
  3. In the for loop, the configureListeners() method is called, which instantiates three event listeners/subscribers:
    • focusIn/focusInHandler() is dispatched after the click event for whichever display list object (box) is clicked.
    • focusOut/focusOutHandler() is dispatched when another box is clicked or if the focus leaves the Stage (for example, by clicking outside Flash Player).
    • keyFocusChange/keyFocusChangeHandler() is dispatched if you use the Tab key or the left-arrow or right-arrow keys to select a display list object. The keyFocusChangeHandler() method traps the left-arrow and right-arrow keys, however, and calls the preventDefault() method to disable them.
  4. In the for loop, each square is added to the display list and displayed (all in the same area) by means of addChild().
  5. The constructor then calls refreshLayout(), which distributes the orange squares across the top (y = 0) of the display with 5 pixels separating each square.
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;
    }
}