| Package | flash.events | 
| Class | public class FocusEvent | 
| Inheritance | FocusEvent   Event   Object | 
| Language version: | ActionScript 3.0 | 
| Runtime version: | 
FocusEvent.FOCUS_INFocusEvent.FOCUS_OUTFocusEvent.KEY_FOCUS_CHANGEFocusEvent.MOUSE_FOCUS_CHANGE| Property | Defined by | ||
|---|---|---|---|
![]()  | bubbles : Boolean
 
	Indicates whether an event is a bubbling event. 
 | Event | |
![]()  | cancelable : Boolean
 
	Indicates whether the behavior associated with the event can be prevented. 
 | Event | |
![]()  | constructor : Object
 
	 A reference to the class object or constructor function for a given object instance. 
 | Object | |
![]()  | currentTarget : Object
 
	The object that is actively processing the Event object with an event listener. 
 | Event | |
| direction : String
 
	Specifies direction of focus for a  
focusIn event. | FocusEvent | ||
![]()  | eventPhase : uint
 
	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 | ||
![]()  | prototype : 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 | ||
![]()  | target : Object
 
	The event target. 
 | Event | |
![]()  | type : String
 
	The type of event. 
 | Event | |
| Method | Defined 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 | ||
| 
 
	Creates a copy of the FocusEvent object and sets the value of each property to match that of the original. 
 | FocusEvent | ||
![]()  | 
 
	 A utility function for implementing the  
toString() method in custom 
	 ActionScript 3.0 Event classes. | Event | |
![]()  | 
 
	 Indicates whether an object has a specified property defined. 
 | Object | |
![]()  | 
 
	Checks whether the  
preventDefault() method has been called on the event. | Event | |
![]()  | 
 
	 Indicates whether an instance of the Object class is in the prototype chain of the object specified 
	 as the parameter. 
 | Object | |
![]()  | 
 
	Cancels an event's default behavior if that behavior can be canceled. 
 | Event | |
![]()  | 
 
	 Indicates whether the specified property exists and is enumerable. 
 | Object | |
![]()  | 
 
     Sets the availability of a dynamic property for loop operations. 
 | Object | |
![]()  | 
 
	Prevents processing of any event listeners in the current node and any subsequent nodes in 
	the event flow. 
 | Event | |
![]()  | 
 
	Prevents processing of any event listeners in nodes subsequent to the current node in the 
	event flow. 
 | Event | |
![]()  | 
 
	 Returns the string representation of this object, formatted according to locale-specific conventions. 
 | Object | |
| 
 
	Returns a string that contains all the properties of the FocusEvent object. 
 | FocusEvent | ||
![]()  | 
 
	 Returns the primitive value of the specified object. 
 | Object | |
| Constant | Defined by | ||
|---|---|---|---|
![]()  | ACTIVATE : String = "activate" [static]
	The  
ACTIVATE constant defines the value of the type property of an activate event object. | Event | |
![]()  | ADDED : String = "added" [static]
	The  
Event.ADDED constant defines the value of the type property of 
	an added event object. | Event | |
![]()  | ADDED_TO_STAGE : String = "addedToStage" [static]
	The  
Event.ADDED_TO_STAGE constant defines the value of the type 
	property of an addedToStage event object. | Event | |
![]()  | BROWSER_ZOOM_CHANGE : String = "browserZoomChange" [static]
    The  
Event.BROWSER_ZOOM_CHANGE constant defines the value of the type 
    property of an browserZoomChange event object. | Event | |
![]()  | CANCEL : String = "cancel" [static]
	The  
Event.CANCEL constant defines the value of the type property of a cancel event object. | Event | |
![]()  | CHANGE : String = "change" [static]
	The  
Event.CHANGE constant defines the value of the type property of a change event object. | Event | |
![]()  | CHANNEL_MESSAGE : String = "channelMessage" [static]
	The  
Event.CHANNEL_MESSAGE constant defines the value of the type property of a channelMessage event object. | Event | |
![]()  | CHANNEL_STATE : String = "channelState" [static]
	The  
Event.CHANNEL_STATE constant defines the value of the type property of a channelState event object. | Event | |
![]()  | CLEAR : String = "clear" [static]
	The  
Event.CLEAR constant defines the value of the type property 
	of a clear event object. | Event | |
![]()  | CLOSE : String = "close" [static]
	The  
Event.CLOSE constant defines the value of the type property of a close event object. | Event | |
![]()  | CLOSING : String = "closing" [static]
	The  
Event.CLOSING constant defines the value of the 
	type property of a closing event object. | Event | |
![]()  | COMPLETE : String = "complete" [static]
	The  
Event.COMPLETE constant defines the value of the type property of a complete event object. | Event | |
![]()  | CONNECT : String = "connect" [static]
	The  
Event.CONNECT constant defines the value of the type property of a connect event object. | Event | |
![]()  | CONTEXT3D_CREATE : String = "context3DCreate" [static]
	The  
Event.CONTEXT3D_CREATE constant defines the value of the type property of a context3Dcreate event object. | Event | |
![]()  | COPY : String = "copy" [static]
	Defines the value of the  
type property of a copy event object. | Event | |
![]()  | CUT : String = "cut" [static]
	Defines the value of the  
type property of a cut event object. | Event | |
![]()  | DEACTIVATE : String = "deactivate" [static]
	The  
Event.DEACTIVATE constant defines the value of the type property of a deactivate event object. | Event | |
![]()  | DISPLAYING : String = "displaying" [static]
	 The  
Event.DISPLAYING constant defines the value of the type property of a displaying event object. | Event | |
![]()  | ENTER_FRAME : String = "enterFrame" [static]
	The  
Event.ENTER_FRAME constant defines the value of the type property of an enterFrame event object. | Event | |
![]()  | EXIT_FRAME : String = "exitFrame" [static]
	The  
Event.EXIT_FRAME constant defines the value of the type property of an exitFrame event object. | Event | |
![]()  | 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 | ||
![]()  | FRAME_CONSTRUCTED : String = "frameConstructed" [static]
	The  
Event.FRAME_CONSTRUCTED constant defines the value of the type property of an frameConstructed event object. | Event | |
![]()  | FRAME_LABEL : String = "frameLabel" [static]
	The  
Event.FRAME_LABEL constant defines the value of the type property of an frameLabel event object. | Event | |
![]()  | FULLSCREEN : String = "fullScreen" [static]
	The  
Event.FULL_SCREEN constant defines the value of the type property of a fullScreen event object. | Event | |
![]()  | 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 | |
![]()  | 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 | |
![]()  | HTML_RENDER : String = "htmlRender" [static]
	The  
Event.HTML_RENDER constant defines the value of the type property of an htmlRender event object. | Event | |
![]()  | ID3 : String = "id3" [static]
	The  
Event.ID3 constant defines the value of the type property of an id3 event object. | Event | |
![]()  | INIT : 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 | ||
![]()  | 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 | ||
![]()  | MOUSE_LEAVE : String = "mouseLeave" [static]
	The  
Event.MOUSE_LEAVE constant defines the value of the type property of a mouseLeave event object. | Event | |
![]()  | NETWORK_CHANGE : String = "networkChange" [static]
	The  
Event.NETWORK_CHANGE constant defines the value of the type property of a networkChange event object. | Event | |
![]()  | OPEN : String = "open" [static]
	The  
Event.OPEN constant defines the value of the type property of an open event object. | Event | |
![]()  | PASTE : String = "paste" [static]
	The  
Event.PASTE constant defines the value of the type property of a paste event object. | Event | |
![]()  | PREPARING : String = "preparing" [static]
	 The  
Event.PREPARING constant defines the value of the type property of a preparing event object. | Event | |
![]()  | REMOVED : String = "removed" [static]
	The  
Event.REMOVED constant defines the value of the type property of
	a removed event object. | Event | |
![]()  | REMOVED_FROM_STAGE : String = "removedFromStage" [static]
	The  
Event.REMOVED_FROM_STAGE constant defines the value of the type 
	property of a removedFromStage event object. | Event | |
![]()  | RENDER : String = "render" [static]
	The  
Event.RENDER constant defines the value of the type property of a render event object. | Event | |
![]()  | RESIZE : String = "resize" [static]
	The  
Event.RESIZE constant defines the value of the type property of a resize event object. | Event | |
![]()  | SCROLL : String = "scroll" [static]
	The  
Event.SCROLL constant defines the value of the type property of a scroll event object. | Event | |
![]()  | SELECT : String = "select" [static]
	The  
Event.SELECT constant defines the value of the type property of a select event object. | Event | |
![]()  | SELECT_ALL : String = "selectAll" [static]
	The  
Event.SELECT_ALL constant defines the value of the type property of a selectAll event object. | Event | |
![]()  | SOUND_COMPLETE : String = "soundComplete" [static]
	The  
Event.SOUND_COMPLETE constant defines the value of the type property of a soundComplete event object. | Event | |
![]()  | STANDARD_ERROR_CLOSE : String = "standardErrorClose" [static]
	The  
Event.STANDARD_ERROR_CLOSE constant defines the value of the type property of a standardErrorClose event object. | Event | |
![]()  | STANDARD_INPUT_CLOSE : String = "standardInputClose" [static]
	The  
Event.STANDARD_INPUT_CLOSE constant defines the value of the type property of a standardInputClose event object. | Event | |
![]()  | STANDARD_OUTPUT_CLOSE : String = "standardOutputClose" [static]
	The  
Event.STANDARD_OUTPUT_CLOSE constant defines the value of the type property of a standardOutputClose event object. | Event | |
![]()  | SUSPEND : String = "suspend" [static]
	The  
Event.SUSPEND constant defines the value of the type property of an suspend event object. | Event | |
![]()  | TAB_CHILDREN_CHANGE : String = "tabChildrenChange" [static]
	The  
Event.TAB_CHILDREN_CHANGE constant defines the value of the type property of a tabChildrenChange event object. | Event | |
![]()  | TAB_ENABLED_CHANGE : String = "tabEnabledChange" [static]
	The  
Event.TAB_ENABLED_CHANGE constant defines the value of the type 
	property of a tabEnabledChange event object. | Event | |
![]()  | TAB_INDEX_CHANGE : String = "tabIndexChange" [static]
	The  
Event.TAB_INDEX_CHANGE constant defines the value of the 
	type property of a tabIndexChange event object. | Event | |
![]()  | TEXT_INTERACTION_MODE_CHANGE : String = "textInteractionModeChange" [static]
	The  
Event.TEXT_INTERACTION_MODE_CHANGE constant defines the value of the type property of a interaction mode event object. | Event | |
![]()  | TEXTURE_READY : String = "textureReady" [static]
	The  
Event.TEXTURE_READY constant defines the value of the type property of a textureReady event object. | Event | |
![]()  | UNLOAD : String = "unload" [static]
	The  
Event.UNLOAD constant defines the value of the type property of an unload event object. | Event | |
![]()  | USER_IDLE : String = "userIdle" [static]
	The  
Event.USER_IDLE constant defines the value of the type property of a userIdle event object. | Event | |
![]()  | USER_PRESENT : String = "userPresent" [static]
	The  
Event.USER_PRESENT constant defines the value of the type property of a userPresent event object. | Event | |
![]()  | VIDEO_FRAME : String = "videoFrame" [static]
	The  
Event.VIDEO_FRAME constant defines the value of the 
	type property of a videoFrame event object. | Event | |
![]()  | WORKER_STATE : String = "workerState" [static]
	The  
Event.WORKER_STATE constant defines the value of the type property of a workerState event object. | Event | |
| direction | property | 
direction:String  [read-write]
| Runtime version: | AIR 1.0 | 
	Specifies direction of focus for a focusIn event.
	
	
    public function get direction():String
    public function set direction(value:String):void
See also
| isRelatedObjectInaccessible | property | 
isRelatedObjectInaccessible:Boolean  [read-write]
| Language version: | ActionScript 3.0 | 
| Runtime version: | 
	 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.
	 	 
    public function get isRelatedObjectInaccessible():Boolean
    public function set isRelatedObjectInaccessible(value:Boolean):void
See also
| keyCode | property | 
keyCode:uint  [read-write]
| Language version: | ActionScript 3.0 | 
| Runtime version: | 
	The key code value of the key pressed to trigger a keyFocusChange event.
		
    public function get keyCode():uint
    public function set keyCode(value:uint):void
| relatedObject | property | 
relatedObject:InteractiveObject  [read-write]
| Language version: | ActionScript 3.0 | 
| Runtime version: | 
	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.
    public function get relatedObject():InteractiveObject
    public function set relatedObject(value:InteractiveObject):void
See also
| shiftKey | property | 
shiftKey:Boolean  [read-write]
| Language version: | ActionScript 3.0 | 
| Runtime version: | 
	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.
		
    public function get shiftKey():Boolean
    public function set shiftKey(value:Boolean):void
| 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 version: | 
Creates an Event object with specific information relevant to focus events. Event objects are passed as parameters to event listeners.
Parameterstype: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
| clone | () | method | 
public override function clone():Event
| Language version: | ActionScript 3.0 | 
| Runtime version: | 
Creates a copy of the FocusEvent object and sets the value of each property to match that of the original.
ReturnsEvent — 
                        A new FocusEvent object with property values that match those of the original.
	 
	 
                        
                      | 
| toString | () | method | 
public override function toString():String
| Language version: | ActionScript 3.0 | 
| Runtime version: | 
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] keyCode=value]
String — 
                        A string that contains all the properties of the FocusEvent object.
	 
	 
                        
                      | 
| FOCUS_IN | constant | 
public static const FOCUS_IN:String = "focusIn"
| Language version: | ActionScript 3.0 | 
| Runtime version: | 
	Defines the value of the type property of a focusIn event object. 
	
This event has the following properties:
| Property | Value | 
|---|---|
bubbles | true | 
cancelable | false; 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 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.
	 | 
direction | The 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 version: | 
	Defines the value of the type property of a focusOut event object. 
	
This event has the following properties:
| Property | Value | 
|---|---|
bubbles | true | 
cancelable | false; 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.
	 | 
See also
| KEY_FOCUS_CHANGE | constant | 
public static const KEY_FOCUS_CHANGE:String = "keyFocusChange"
| Language version: | ActionScript 3.0 | 
| Runtime version: | 
	Defines the value of the type property of a keyFocusChange event object. 
	
	
This event has the following properties:
| Property | Value | 
|---|---|
bubbles | true | 
cancelable | true; call the preventDefault() method
	to cancel default behavior. | 
currentTarget | The object that is actively processing the Event object with an event listener. | 
keyCode | The key code value of the key pressed to trigger a keyFocusChange event. | 
relatedObject | The complementary InteractiveObject instance that is affected by the change in focus. | 
shiftKey | true if the Shift key modifier is activated; false otherwise. | 
target | The 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 version: | 
	Defines the value of the type property of a mouseFocusChange event object. 
	
This event has the following properties:
| Property | Value | 
|---|---|
bubbles | true | 
cancelable | true; call the preventDefault() method 
	to cancel default behavior. | 
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 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 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:
  child (of type Sprite) and childCount (of type uint).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:
  	size property of type uint is set to 50 pixels and bgColor is set
  				to light blue. buttonMode and useHandCursor properties of the 
  			Sprite class are set to true within the constructor.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.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.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.for loop, each square is added to the display list and displayed (all in 
  	the same area) by means of addChild().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;
	}
}