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:

Static variables

@:value("focusIn")staticinlineread onlyFOCUS_IN:EventType<FocusEvent> = "focusIn"

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.

@:value("focusOut")staticinlineread onlyFOCUS_OUT:EventType<FocusEvent> = "focusOut"

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

This event has the following properties:

PropertyValue------bubblestruecancelablefalse;

there is no default behavior to cancel. || currentTarget | The object that is actively processing the Event object with an event listener. || keyCode | 0; applies only to keyFocusChange events. || relatedObject | The complementary InteractiveObject instance that is affected by the change in focus. || shiftKey | false; applies only to keyFocusChange events. || target | The 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. |

@:value("keyFocusChange")staticinlineread onlyKEY_FOCUS_CHANGE:EventType<FocusEvent> = "keyFocusChange"

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.

@:value("mouseFocusChange")staticinlineread onlyMOUSE_FOCUS_CHANGE:EventType<FocusEvent> = "mouseFocusChange"

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.

Constructor

@:value({ keyCode : 0, shiftKey : false, relatedObject : null, cancelable : false, bubbles : false })new(type:String, bubbles:Bool = false, cancelable:Bool = false, ?relatedObject:InteractiveObject, shiftKey:Bool = false, keyCode:Int = 0)

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

Parameters:

type

The type of the event. Possible values are: FocusEvent.FOCUS_IN, FocusEvent.FOCUS_OUT, FocusEvent.KEY_FOCUS_CHANGE, and FocusEvent.MOUSE_FOCUS_CHANGE.

bubbles

Determines whether the Event object participates in the bubbling stage of the event flow.

cancelable

Determines whether the Event object can be canceled.

relatedObject

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

Indicates whether the Shift key modifier is activated.

keyCode

Indicates the code of the key pressed to trigger a keyFocusChange event.

Variables

keyCode:Int

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

relatedObject:InteractiveObject

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.

shiftKey:Bool

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.

Methods

Inherited Variables

Defined by Event

read onlybubbles:Bool

Indicates whether an event is a bubbling event. If the event can bubble, this value is true; otherwise it is false.

When an event occurs, it moves through the three phases of the event flow: the capture phase, which flows from the top of the display list hierarchy to the node just before the target node; the target phase, which comprises the target node; and the bubbling phase, which flows from the node subsequent to the target node back up the display list hierarchy.

Some events, such as the activate and unload events, do not have a bubbling phase. The bubbles property has a value of false for events that do not have a bubbling phase.

read onlycancelable:Bool

Indicates whether the behavior associated with the event can be prevented. If the behavior can be canceled, this value is true; otherwise it is false.

read onlycurrentTarget:Object

The object that is actively processing the Event object with an event listener. For example, if a user clicks an OK button, the current target could be the node containing that button or one of its ancestors that has registered an event listener for that event.

read onlyeventPhase:EventPhase

The current phase in the event flow. This property can contain the following numeric values:

read onlytarget:Object

The event target. This property contains the target node. For example, if a user clicks an OK button, the target node is the display list node containing that button.

read onlytype:String

The type of event. The type is case-sensitive.

Inherited Methods

Defined by Event

@:value({ p5 : null, p4 : null, p3 : null, p2 : null, p1 : null })formatToString(className:String, ?p1:String, ?p2:String, ?p3:String, ?p4:String, ?p5:String):String

A utility function for implementing the toString() method in custom OpenFL Event classes. Overriding the toString() method is recommended, but not required.

class PingEvent extends Event {
	var URL:String;

	public function new() {
		super();
	}

	public override function toString():String {
		return formatToString("PingEvent", "type", "bubbles", "cancelable", "eventPhase", "URL");
	}
}

Parameters:

className

The name of your custom Event class. In the previous example, the className parameter is PingEvent.

Returns:

The name of your custom Event class and the String value of your ...arguments parameter.

isDefaultPrevented():Bool

Checks whether the preventDefault() method has been called on the event. If the preventDefault() method has been called, returns true; otherwise, returns false.

Returns:

If preventDefault() has been called, returns true; otherwise, returns false.

preventDefault():Void

Cancels an event's default behavior if that behavior can be canceled. Many events have associated behaviors that are carried out by default. For example, if a user types a character into a text field, the default behavior is that the character is displayed in the text field. Because the TextEvent.TEXT_INPUT event's default behavior can be canceled, you can use the preventDefault() method to prevent the character from appearing. An example of a behavior that is not cancelable is the default behavior associated with the Event.REMOVED event, which is generated whenever Flash Player is about to remove a display object from the display list. The default behavior (removing the element) cannot be canceled, so the preventDefault() method has no effect on this default behavior. You can use the Event.cancelable property to check whether you can prevent the default behavior associated with a particular event. If the value of Event.cancelable is true, then preventDefault() can be used to cancel the event; otherwise, preventDefault() has no effect.

stopImmediatePropagation():Void

Prevents processing of any event listeners in the current node and any subsequent nodes in the event flow. This method takes effect immediately, and it affects event listeners in the current node. In contrast, the stopPropagation() method doesn't take effect until all the event listeners in the current node finish processing.

Note: This method does not cancel the behavior associated with this event; see preventDefault() for that functionality.

stopPropagation():Void

Prevents processing of any event listeners in nodes subsequent to the current node in the event flow. This method does not affect any event listeners in the current node (currentTarget). In contrast, the stopImmediatePropagation() method prevents processing of event listeners in both the current node and subsequent nodes. Additional calls to this method have no effect. This method can be called in any phase of the event flow.

Note: This method does not cancel the behavior associated with this event; see preventDefault() for that functionality.