Packagefeathers.controls
Classpublic class Button
InheritanceButton Inheritance BasicButton Inheritance FeathersControl Inheritance Sprite Inheritance DisplayObjectContainer Inheritance DisplayObject Inheritance EventDispatcher Inheritance Object
Implements IFocusDisplayObject, ITextBaselineControl
Subclasses ToggleButton

Product Version : Feathers 1.0.0

A push button control that may be triggered when pressed and released.

The following example creates a button, gives it a label and listens for when the button is triggered:

var button:Button = new Button();
button.label = "Click Me";
button.addEventListener( Event.TRIGGERED, button_triggeredHandler );
this.addChild( button );

See also

How to use the Feathers Button component


Public Properties
 PropertyDefined By
 InheritedaddedEffect : Function
An optional effect that is activated when the component is added to the stage.
FeathersControl
 Inheritedalpha : Number
The opacity of the object.
DisplayObject
 Inheritedbase : DisplayObject
[read-only] The topmost object in the display tree the object is part of.
DisplayObject
  baseline : Number
[read-only] Returns the text baseline measurement, in pixels.
Button
 InheritedblendMode : String
The blend mode determines how the object is blended with the objects underneath.
DisplayObject
 Inheritedbounds : Rectangle
[read-only] The bounds of the object relative to the local coordinates of the parent.
DisplayObject
 InheritedcurrentState : String
[read-only] The current state of the button.
BasicButton
  defaultLabelProperties : Object
An object that stores properties for the button's label text renderer when no specific properties are defined for the button's current state, and the properties will be passed down to the label text renderer when the button validates.
Button
 InheriteddefaultTextEditorFactory : Function
[static] A function used by all UI controls that support text editor to create an ITextEditor instance.
FeathersControl
 InheriteddefaultTextRendererFactory : Function
[static] A function used by all UI controls that support text renderers to create an ITextRenderer instance.
FeathersControl
 Inheriteddepth : int
[read-only] The component's depth in the display list, relative to the stage.
FeathersControl
 InheritedeffectsSuspended : Boolean
[read-only] Indicates if effects have been suspended.
FeathersControl
 InheritedexplicitHeight : Number
[read-only] The height value explicitly set by passing a value to the height setter or by calling the setSize() function.
FeathersControl
 InheritedexplicitMaxHeight : Number
[read-only] The maximum height value explicitly set by passing a value to the maxHeight setter.
FeathersControl
 InheritedexplicitMaxWidth : Number
[read-only] The maximum width value explicitly set by passing a value to the maxWidth setter.
FeathersControl
 InheritedexplicitMinHeight : Number
[read-only] The minimum height value explicitly set by passing a value to the minHeight setter.
FeathersControl
 InheritedexplicitMinWidth : Number
[read-only] The minimum width value explicitly set by passing a value to the minWidth setter.
FeathersControl
 InheritedexplicitWidth : Number
[read-only] The width value explicitly set by passing a value to the width setter or to the setSize() method.
FeathersControl
 Inheritedfilter : FragmentFilter
The filter that is attached to the display object.
DisplayObject
 InheritedfocusInEffect : Function
An optional effect that is activated when the component receives focus.
FeathersControl
 InheritedfocusManager : IFocusManager
The implementation of this property is provided for convenience, but it cannot be used unless a subclass implements the IFocusDisplayObject interface. The current focus manager for this component.
FeathersControl
 InheritedfocusOutEffect : Function
An optional effect that is activated when the component loses focus.
FeathersControl
 InheritedfocusOwner : IFocusDisplayObject
The implementation of this property is provided for convenience, but it cannot be used unless a subclass implements the IFocusDisplayObject interface. Used for associating focusable display objects that are not direct children with an "owner" focusable display object, such as pop-ups.
FeathersControl
  globalStyleProvider : IStyleProvider
[static] The default IStyleProvider for all Button components.
Button
 Inheritedheight : Number
[override] The height of the component, in pixels.
FeathersControl
 InheritedhideEffect : Function
An optional effect that is activated when the component is hidden.
FeathersControl
 InheritedincludeInLayout : Boolean
Determines if the ILayout should use this object or ignore it.
FeathersControl
 Inheritedis3D : Boolean
[read-only] Indicates if this object or any of its parents is a 'Sprite3D' object.
DisplayObject
 InheritedisCreated : Boolean
[read-only] Determines if the component has been initialized and validated for the first time.
FeathersControl
 InheritedisEnabled : Boolean
Indicates whether the control is interactive or not.
FeathersControl
 InheritedisFocusEnabled : Boolean
The implementation of this property is provided for convenience, but it cannot be used unless a subclass implements the IFocusDisplayObject interface. Determines if this component can receive focus.
FeathersControl
 InheritedisInitialized : Boolean
[read-only] Determines if the component has been initialized yet.
FeathersControl
  isLongPressEnabled : Boolean
Determines if FeathersEventType.LONG_PRESS will be dispatched.
Button
 InheritedisQuickHitAreaEnabled : Boolean
Similar to mouseChildren on the classic display list.
FeathersControl
 InheritedisShowingFocus : Boolean
[read-only] The implementation of this method is provided for convenience, but it cannot be used unless a subclass implements the IFocusDisplayObject interface. Indicates if the showFocus() method has been called on the object when it has focus.
FeathersControl
  label : String
The text displayed on the button.
Button
  labelFactory : Function
A function used to instantiate the button's label text renderer sub-component.
Button
 InheritedlayoutData : ILayoutData
Extra parameters associated with this display object that will be used by the layout algorithm.
FeathersControl
  longPressDuration : Number
The duration, in seconds, of a long press.
Button
 InheritedmaintainTouchFocus : Boolean
[read-only] The implementation of this method is provided for convenience, but it cannot be used unless a subclass implements the IFocusDisplayObject interface. If true, the display object should remain in focus, even if something else is touched.
FeathersControl
 Inheritedmask : DisplayObject
The display object that acts as a mask for the current object.
DisplayObject
 InheritedmaskInverted : Boolean
Indicates if the masked region of this object is set to be inverted.
DisplayObject
 InheritedmaxHeight : Number
The maximum recommended height to be used for self-measurement and, optionally, by any code that is resizing this component.
FeathersControl
 InheritedmaxWidth : Number
The maximum recommended width to be used for self-measurement and, optionally, by any code that is resizing this component.
FeathersControl
 InheritedminHeight : Number
The minimum recommended height to be used for self-measurement and, optionally, by any code that is resizing this component.
FeathersControl
 InheritedminTouchHeight : Number
If using isQuickHitAreaEnabled, and the hit area's height is smaller than this value, it will be expanded.
FeathersControl
 InheritedminTouchWidth : Number
If using isQuickHitAreaEnabled, and the hit area's width is smaller than this value, it will be expanded.
FeathersControl
 InheritedminWidth : Number
The minimum recommended width to be used for self-measurement and, optionally, by any code that is resizing this component.
FeathersControl
 InheritedmoveEffect : Function
An optional effect that is activated when the component is moved to a new position.
FeathersControl
 Inheritedname : String
The name of the display object (default: null).
DisplayObject
 InheritednextDownFocus : IFocusDisplayObject
The implementation of this property is provided for convenience, but it cannot be used unless a subclass implements the IFocusDisplayObject interface. The next object that will receive focus when Keyboard.DOWN is pressed at KeyLocation.D_PAD and a focus manager is enabled.
FeathersControl
 InheritednextLeftFocus : IFocusDisplayObject
The implementation of this property is provided for convenience, but it cannot be used unless a subclass implements the IFocusDisplayObject interface. The next object that will receive focus when Keyboard.LEFT is pressed at KeyLocation.D_PAD and a focus manager is enabled.
FeathersControl
 InheritednextRightFocus : IFocusDisplayObject
The implementation of this property is provided for convenience, but it cannot be used unless a subclass implements the IFocusDisplayObject interface. The next object that will receive focus when Keyboard.RIGHT is pressed at KeyLocation.D_PAD and a focus manager is enabled.
FeathersControl
 InheritednextTabFocus : IFocusDisplayObject
The implementation of this property is provided for convenience, but it cannot be used unless a subclass implements the IFocusDisplayObject interface. The next object that will receive focus when the tab key is pressed when a focus manager is enabled.
FeathersControl
 InheritednextUpFocus : IFocusDisplayObject
The implementation of this property is provided for convenience, but it cannot be used unless a subclass implements the IFocusDisplayObject interface. The next object that will receive focus when Keyboard.UP is pressed at KeyLocation.D_PAD and a focus manager is enabled.
FeathersControl
 InheritednumChildren : int
[read-only] The number of children of this container.
DisplayObjectContainer
  numLines : int
[read-only] The number of text lines displayed by the button.
Button
 Inheritedparent : DisplayObjectContainer
[read-only] The display object container that contains this display object.
DisplayObject
 InheritedpivotX : Number
The x coordinate of the object's origin in its own coordinate space (default: 0).
DisplayObject
 InheritedpivotY : Number
The y coordinate of the object's origin in its own coordinate space (default: 0).
DisplayObject
 InheritedpreviousTabFocus : IFocusDisplayObject
The implementation of this property is provided for convenience, but it cannot be used unless a subclass implements the IFocusDisplayObject interface. The previous object that will receive focus when the tab key is pressed while holding shift when a focus manager is enabled.
FeathersControl
 InheritedrequiresRedraw : Boolean
[read-only] Indicates if the object needs to be redrawn in the upcoming frame, i.e.
DisplayObject
 InheritedresizeEffect : Function
An optional effect that is activated when the component is resized with new dimensions.
FeathersControl
 Inheritedroot : DisplayObject
[read-only] The root object the display object is connected to (i.e.
DisplayObject
 Inheritedrotation : Number
The rotation of the object in radians.
DisplayObject
 Inheritedscale : Number
Sets both 'scaleX' and 'scaleY' to the same value.
DisplayObject
 InheritedscaleX : Number
The horizontal scale factor.
DisplayObject
 InheritedscaleY : Number
The vertical scale factor.
DisplayObject
 InheritedshowEffect : Function
An optional effect that is activated when the component is shown.
FeathersControl
 InheritedskewX : Number
The horizontal skew angle in radians.
DisplayObject
 InheritedskewY : Number
The vertical skew angle in radians.
DisplayObject
 Inheritedstage : Stage
[read-only] The stage the display object is connected to, or null if it is not connected to the stage.
DisplayObject
 InheritedstyleName : String
The concatenated styleNameList, with values separated by spaces.
FeathersControl
 InheritedstyleNameList : TokenList
[read-only] Contains a list of all "styles" assigned to this control.
FeathersControl
 InheritedstyleProvider : IStyleProvider
When a component initializes, a style provider may be used to set properties that affect the component's visual appearance.
FeathersControl
 InheritedtoolTip : String
Text to display in a tool tip to when hovering over this component, if the ToolTipManager is enabled.
FeathersControl
 Inheritedtouchable : Boolean
Indicates if this object (and its children) will receive touch events.
DisplayObject
 InheritedtouchGroup : Boolean
If a container is a 'touchGroup', it will act as a single touchable object.
DisplayObjectContainer
 InheritedtransformationMatrix : Matrix
The transformation matrix of the object relative to its parent.
DisplayObject
 InheritedtransformationMatrix3D : Matrix3D
[read-only] The 3D transformation matrix of the object relative to its parent.
DisplayObject
 InheriteduseHandCursor : Boolean
Indicates if the mouse cursor should transform into a hand while it's over the sprite.
DisplayObject
 Inheritedvisible : Boolean
The visibility of the object.
DisplayObject
 Inheritedwidth : Number
[override] The width of the component, in pixels.
FeathersControl
 Inheritedx : Number
The x coordinate of the object relative to the local coordinates of the parent.
DisplayObject
 Inheritedy : Number
The y coordinate of the object relative to the local coordinates of the parent.
DisplayObject
Protected Properties
 PropertyDefined By
 InheritedactualHeight : Number = 0
The final height value that should be used for layout.
FeathersControl
 InheritedactualMinHeight : Number = 0
The final minimum height value that should be used for layout.
FeathersControl
 InheritedactualMinWidth : Number = 0
The final minimum width value that should be used for layout.
FeathersControl
 InheritedactualWidth : Number = 0
The final width value that should be used for layout.
FeathersControl
  currentIcon : DisplayObject
The currently visible icon.
Button
 InheritedcurrentSkin : DisplayObject
The currently visible skin.
BasicButton
 InheriteddefaultStyleProvider : IStyleProvider
[read-only] When the FeathersControl constructor is called, the styleProvider property is set to this value.
FeathersControl
  labelStyleName : String = feathers-button-label
The value added to the styleNameList of the label text renderer.
Button
  labelTextRenderer : ITextRenderer
The text renderer for the button's label.
Button
Public Methods
 MethodDefined By
  
Constructor.
Button
 Inherited
Adds a child to the container.
DisplayObjectContainer
 Inherited
Adds a child to the container at a certain index.
DisplayObjectContainer
 Inherited
addEventListener(type:String, listener:Function):void
[override] Registers an event listener at a certain object.
DisplayObject
 Inherited
alignPivot(horizontalAlign:String = center, verticalAlign:String = center):void
Moves the pivot point to a certain position within the local coordinate system of the object.
DisplayObject
 Inherited
broadcastEvent(event:Event):void
Dispatches an event on all children (recursively).
DisplayObjectContainer
 Inherited
broadcastEventWith(eventType:String, data:Object = null):void
Dispatches an event with the given parameters on all children (recursively).
DisplayObjectContainer
 Inherited
contains(child:DisplayObject):Boolean
Determines if a certain object is a child of the container (recursively).
DisplayObjectContainer
 Inherited
dispatchEvent(event:Event):void
Dispatches an event to all objects that have registered listeners for its type.
EventDispatcher
 Inherited
dispatchEventWith(type:String, bubbles:Boolean = false, data:Object = null):void
Dispatches an event with the given parameters to all objects that have registered listeners for the given type.
EventDispatcher
 Inherited
dispose():void
[override] Disposes the resources of all children.
DisplayObjectContainer
 Inherited
drawToBitmapData(out:BitmapData = null, color:uint = 0x0, alpha:Number = 0.0):BitmapData
Draws the object into a BitmapData object.
DisplayObject
 Inherited
getBounds(targetSpace:DisplayObject, resultRect:Rectangle = null):Rectangle
[override] Feathers components use an optimized getBounds() implementation that may sometimes behave differently than regular Starling display objects.
FeathersControl
 Inherited
Returns a child object at a certain index.
DisplayObjectContainer
 Inherited
Returns a child object with a certain name (non-recursively).
DisplayObjectContainer
 Inherited
Returns the index of a child within the container, or "-1" if it is not found.
DisplayObjectContainer
  
Gets the font styles to be used to display the button's text when the button's currentState property matches the specified state value.
Button
  
Gets the icon to be used by the button when the button's currentState property matches the specified state value.
Button
  
getScaleForState(state:String):Number
Gets the scale to be used by the button when the button's currentState property matches the specified state value.
Button
 Inherited
Gets the skin to be used by the button when its currentState property matches the specified state value.
BasicButton
 Inherited
getTransformationMatrix(targetSpace:DisplayObject, out:Matrix = null):Matrix
Creates a matrix that represents the transformation from the local coordinate system to another.
DisplayObject
 Inherited
getTransformationMatrix3D(targetSpace:DisplayObject, out:Matrix3D = null):Matrix3D
Creates a matrix that represents the transformation from the local coordinate system to another.
DisplayObject
 Inherited
globalToLocal(globalPoint:Point, out:Point = null):Point
Transforms a point from global (stage) coordinates to the local coordinate system.
DisplayObject
 Inherited
globalToLocal3D(globalPoint:Point, out:Vector3D = null):Vector3D
Transforms a point from global (stage) coordinates to the 3D local coordinate system.
DisplayObject
 Inherited
hasEventListener(type:String, listener:Function = null):Boolean
If called with one argument, figures out if there are any listeners registered for the given event type.
EventDispatcher
 Inherited
hideFocus():void
The implementation of this method is provided for convenience, but it cannot be used unless a subclass implements the IFocusDisplayObject interface.
FeathersControl
 Inherited
hitTest(localPoint:Point):DisplayObject
[override] Returns the object that is found topmost beneath a point in local coordinates, or nil if the test fails.
DisplayObjectContainer
 Inherited
hitTestMask(localPoint:Point):Boolean
Checks if a certain point is inside the display object's mask.
DisplayObject
 Inherited
If the component has not yet initialized, initializes immediately.
FeathersControl
 Inherited
invalidate(flag:String):void
Call this function to tell the UI control that a redraw is pending.
FeathersControl
 Inherited
isInvalid(flag:String = null):Boolean
Indicates whether the control is pending validation or not.
FeathersControl
 Inherited
local3DToGlobal(localPoint:Vector3D, out:Point = null):Point
Transforms a 3D point from the local coordinate system to global (stage) coordinates.
DisplayObject
 Inherited
localToGlobal(localPoint:Point, out:Point = null):Point
Transforms a point from the local coordinate system to global (stage) coordinates.
DisplayObject
 Inherited
move(x:Number, y:Number):void
Sets both the x and the y positions of the control in a single function call.
FeathersControl
 Inherited
removeChild(child:DisplayObject, dispose:Boolean = false):DisplayObject
Removes a child from the container.
DisplayObjectContainer
 Inherited
removeChildAt(index:int, dispose:Boolean = false):DisplayObject
Removes a child at a certain index.
DisplayObjectContainer
 Inherited
removeChildren(beginIndex:int = 0, endIndex:int = -1, dispose:Boolean = false):void
Removes a range of children from the container (endIndex included).
DisplayObjectContainer
 Inherited
removeEventListener(type:String, listener:Function):void
[override] Removes an event listener from the object.
DisplayObject
 Inherited
removeEventListeners(type:String = null):void
[override] Removes all event listeners with a certain type, or all of them if type is null.
DisplayObject
 Inherited
removeFromParent(dispose:Boolean = false):void
Removes the object from its parent, if it has one, and optionally disposes it.
DisplayObject
 Inherited
removeFromParentWithEffect(effect:Function, dispose:Boolean = false):void
Plays an effect before removing the component from its parent.
FeathersControl
 Inherited
render(painter:Painter):void
[override] Renders the display object with the help of a painter object.
DisplayObjectContainer
 Inherited
Resets the styleProvider property to its default value, which is usually the global style provider for the component.
FeathersControl
 Inherited
Indicates that effects should be re-activated after being suspended.
FeathersControl
 Inherited
setChildIndex(child:DisplayObject, index:int):void
Moves a child to a certain index.
DisplayObjectContainer
  
setFontStylesForState(state:String, format:TextFormat):void
Sets the font styles to be used to display the button's text when the button's currentState property matches the specified state value.
Button
  
setIconForState(state:String, icon:DisplayObject):void
Sets the icon to be used by the button when the button's currentState property matches the specified state value.
Button
 Inherited
Forces the object to be redrawn in the next frame.
DisplayObject
  
setScaleForState(state:String, scale:Number):void
Sets the scale to be used by the button when the button's currentState property matches the specified state value.
Button
 Inherited
setSize(width:Number, height:Number):void
Sets both the width and the height of the control in a single function call.
FeathersControl
 Inherited
setSkinForState(state:String, skin:DisplayObject):void
Sets the skin to be used by the button when its currentState property matches the specified state value.
BasicButton
 Inherited
showFocus():void
The implementation of this method is provided for convenience, but it cannot be used unless a subclass implements the IFocusDisplayObject interface.
FeathersControl
 Inherited
sortChildren(compareFunction:Function):void
Sorts the children according to a given function (that works just like the sort function of the Vector class).
DisplayObjectContainer
 Inherited
Indicates that effects should not be activated temporarily.
FeathersControl
 Inherited
Swaps the indexes of two children.
DisplayObjectContainer
 Inherited
swapChildrenAt(index1:int, index2:int):void
Swaps the indexes of two children.
DisplayObjectContainer
 Inherited
validate():void
Immediately validates the display object, if it is invalid.
FeathersControl
Protected Methods
 MethodDefined By
 Inherited
If the component's dimensions have not been set explicitly, it will measure its content and determine an ideal size for itself.
BasicButton
 Inherited
clearInvalidationFlag(flag:String):void
Clears an invalidation flag.
FeathersControl
  
Creates the label text renderer sub-component and removes the old instance, if one exists.
Button
 Inherited
draw():void
Override to customize layout and to adjust properties of children.
FeathersControl
 Inherited
focusInHandler(event:Event):void
Default event handler for FeathersEventType.FOCUS_IN that may be overridden in subclasses to perform additional actions when the component receives focus.
FeathersControl
 Inherited
Default event handler for FeathersEventType.FOCUS_OUT that may be overridden in subclasses to perform additional actions when the component loses focus.
FeathersControl
 Inherited
The next style that is set will not be restricted.
FeathersControl
 Inherited
initialize():void
Called the first time that the UI control is added to the stage, and you should override this function to customize the initialization process.
FeathersControl
  
Positions and sizes the button's content.
Button
 Inherited
processStyleRestriction(key:Object):Boolean
Used by setters for properties that are considered "styles" to determine if the setter has been called directly on the component or from a style provider.
FeathersControl
 Inherited
Updates the focus indicator skin by showing or hiding it and adjusting its position and dimensions.
FeathersControl
  
Sets the currentIcon property.
Button
 Inherited
Sets the currentSkin property.
BasicButton
 Inherited
saveMeasurements(width:Number, height:Number, minWidth:Number = 0, minHeight:Number = 0):Boolean
Saves the dimensions and minimum dimensions calculated for the component.
FeathersControl
 Inherited
setInvalidationFlag(flag:String):void
Sets an invalidation flag.
FeathersControl
 Inherited
setSizeInternal(width:Number, height:Number, canInvalidate:Boolean):Boolean
Sets the width and height of the control, with the option of invalidating or not.
FeathersControl
Events
 Event Summary Defined By
 InheritedDispatched when an object is added to a parent.DisplayObject
 InheritedDispatched when an object is connected to the stage (directly or indirectly).DisplayObject
 InheritedDispatched after the component has validated for the first time.FeathersControl
 InheritedDispatched once every frame on every object that is connected to the stage.DisplayObject
 InheritedDispatched after initialize() has been called, but before the first time that draw() has been called.FeathersControl
 InheritedDispatched when a key on the keyboard is pressed.DisplayObject
 InheritedDispatched when a key on the keyboard is released.DisplayObject
  Dispatched when the button is pressed for a long time.Button
 InheritedDispatched when an object is removed from its parent.DisplayObject
 InheritedDispatched when an object is removed from the stage and won't be rendered any longer.DisplayObject
 InheritedDispatched when the width or height of the control changes.FeathersControl
 InheritedDispatched when the display object's state changes.BasicButton
 InheritedDispatched when an object is touched.DisplayObject
 InheritedDispatched when the the user taps or clicks the button.BasicButton
Styles
 Style Description Defined By
  
customLabelStyleName
Type: String
A style name to add to the button's label text renderer sub-component. Typically used by a theme to provide different styles to different buttons.

In the following example, a custom label style name is passed to the button:

button.customLabelStyleName = "my-custom-button-label";

In your theme, you can target this sub-component style name to provide different styles than the default:

getStyleProviderForClass( BitmapFontTextRenderer ).setFunctionForStyleName( "my-custom-button-label", setCustomButtonLabelStyles );
The default value is null.

See also

Button
  
defaultIcon
Type: starling.display.DisplayObject
The icon used when no other icon is defined for the current state. Intended to be used when multiple states should share the same icon.

This property will be ignored if a function is passed to the stateToIconFunction property.

The following example gives the button a default icon to use for all states when no specific icon is available:

button.defaultIcon = new Image( texture );
The default value is null.

See also

Button
 InheritedType: starling.display.DisplayObject
The skin used when no other skin is defined for the current state.

See also

BasicButton
  
disabledFontStyles
Type: starling.text.TextFormat
The font styles used to display the button's text when the button is disabled.

In the following example, the disabled font styles are customized:

button.disabledFontStyles = new TextFormat( "Helvetica", 20, 0x999999 );

Alternatively, you may use setFontStylesForState() with ButtonState.DISABLED to set the same font styles:

var fontStyles:TextFormat = new TextFormat( "Helvetica", 20, 0x999999 ); button.setFontStylesForState( ButtonState.DISABLED, fontStyles );

Note: The starling.text.TextFormat class defines a number of common font styles, but the text renderer being used may support a larger number of ways to be customized. Use the labelFactory to set more advanced styles on the text renderer.

The default value is null.

See also

Button
  
disabledIcon
Type: starling.display.DisplayObject
The icon used for the button's disabled state. If null, then defaultIcon is used instead.

This property will be ignored if a function is passed to the stateToIconFunction property.

The following example gives the button an icon for the disabled state:

button.disabledIcon = new Image( texture );

Alternatively, you may use setIconForState() with ButtonState.DISABLED to set the same icon:

var icon:Image = new Image( texture ); button.setIconForState( ButtonState.DISABLED, icon );
The default value is null.

See also

Button
 InheritedType: starling.display.DisplayObject
The skin used for the button's disabled state.

See also

BasicButton
  
downIcon
Type: starling.display.DisplayObject
The icon used for the button's down state. If null, then defaultIcon is used instead.

This property will be ignored if a function is passed to the stateToIconFunction property.

The following example gives the button an icon for the down state:

button.downIcon = new Image( texture );

Alternatively, you may use setIconForState() with ButtonState.DOWN to set the same icon:

var icon:Image = new Image( texture ); button.setIconForState( ButtonState.DOWN, icon );
The default value is null.

See also

Button
 InheritedType: starling.display.DisplayObject
The skin used for the button's down state.

See also

BasicButton
 InheritedType: starling.display.DisplayObject
If this component supports focus, this optional skin will be displayed above the component when showFocus() is called.

See also

FeathersControl
 InheritedType: Number
Quickly sets all focus padding properties to the same value.

See also

FeathersControl
 InheritedType: Number
The minimum space, in pixels, between the object's bottom edge and the bottom edge of the focus indicator skin.

See also

FeathersControl
 InheritedType: Number
The minimum space, in pixels, between the object's left edge and the left edge of the focus indicator skin.

See also

FeathersControl
 InheritedType: Number
The minimum space, in pixels, between the object's right edge and the right edge of the focus indicator skin.

See also

FeathersControl
 InheritedType: Number
The minimum space, in pixels, between the object's top edge and the top edge of the focus indicator skin.

See also

FeathersControl
  
fontStyles
Type: starling.text.TextFormat
The font styles used to display the button's text.

In the following example, the font styles are customized:

button.fontStyles = new TextFormat( "Helvetica", 20, 0xcc0000 );

Note: The starling.text.TextFormat class defines a number of common font styles, but the text renderer being used may support a larger number of ways to be customized. Use the labelFactory to set more advanced styles.

The default value is null.

See also

Button
  
gap
Type: Number
The space, in pixels, between the icon and the label. Applies to either horizontal or vertical spacing, depending on the value of iconPosition.

If gap is set to Number.POSITIVE_INFINITY, the label and icon will be positioned as far apart as possible. In other words, they will be positioned at the edges of the button, adjusted for padding.

The following example creates a gap of 50 pixels between the label and the icon:

button.label = "Click Me"; button.defaultIcon = new Image( texture ); button.gap = 50;
The default value is 0.

See also

Button
  
hasLabelTextRenderer
Type: Boolean
Determines if the button's label text renderer is created or not. Useful for button sub-components that may not display text, like slider thumbs and tracks, or similar sub-components on scroll bars.

The following example removed the label text renderer:

button.hasLabelTextRenderer = false;
The default value is true.
Button
  
horizontalAlign
Type: String
The location where the button's content is aligned horizontally (on the x-axis).

The following example aligns the button's content to the left:

button.horizontalAlign = HorizontalAlign.LEFT;

Note: The HorizontalAlign.JUSTIFY constant is not supported.

The default value is feathers.layout.HorizontalAlign.CENTER.

See also

Button
  
hoverIcon
Type: starling.display.DisplayObject
The icon used for the button's hover state. If null, then defaultIcon is used instead.

This property will be ignored if a function is passed to the stateToIconFunction property.

The following example gives the button an icon for the hover state:

button.hoverIcon = new Image( texture );

Alternatively, you may use setIconForState() with ButtonState.HOVER to set the same icon:

var icon:Image = new Image( texture ); button.setIconForState( ButtonState.HOVER, icon );
The default value is null.

See also

Button
 InheritedType: starling.display.DisplayObject
The skin used for the button's hover state.

See also

BasicButton
  
iconOffsetX
Type: Number
Offsets the x position of the icon by a certain number of pixels. This does not affect the measurement of the button. The button will measure itself as if the icon were not offset from its original position.

The following example offsets the x position of the button's icon by 20 pixels:

button.iconOffsetX = 20;
The default value is 0.

See also

Button
  
iconOffsetY
Type: Number
Offsets the y position of the icon by a certain number of pixels. This does not affect the measurement of the button. The button will measure itself as if the icon were not offset from its original position.

The following example offsets the y position of the button's icon by 20 pixels:

button.iconOffsetY = 20;
The default value is 0.

See also

Button
  
iconPosition
Type: String
The location of the icon, relative to the label.

The following example positions the icon to the right of the label:

button.label = "Click Me"; button.defaultIcon = new Image( texture ); button.iconPosition = RelativePosition.RIGHT;
The default value is feathers.layout.RelativePosition.LEFT.

See also

Button
 InheritedType: Boolean
Determines if a pressed button should remain in the down state if a touch moves outside of the button's bounds.
BasicButton
  
labelOffsetX
Type: Number
Offsets the x position of the label by a certain number of pixels. This does not affect the measurement of the button. The button will measure itself as if the label were not offset from its original position.

The following example offsets the x position of the button's label by 20 pixels:

button.labelOffsetX = 20;
The default value is 0.

See also

Button
  
labelOffsetY
Type: Number
Offsets the y position of the label by a certain number of pixels. This does not affect the measurement of the button. The button will measure itself as if the label were not offset from its original position.

The following example offsets the y position of the button's label by 20 pixels:

button.labelOffsetY = 20;
The default value is 0.

See also

Button
  
minGap
Type: Number
If the value of the gap property is Number.POSITIVE_INFINITY, meaning that the gap will fill as much space as possible, the final calculated value will not be smaller than the value of the minGap property.

The following example ensures that the gap is never smaller than 20 pixels:

button.gap = Number.POSITIVE_INFINITY; button.minGap = 20;
The default value is 0.

See also

Button
  
padding
Type: Number
Quickly sets all padding properties to the same value. The padding getter always returns the value of paddingTop, but the other padding values may be different.

The following example gives the button 20 pixels of padding on all sides:

button.padding = 20;
The default value is 0.

See also

Button
  
paddingBottom
Type: Number
The minimum space, in pixels, between the button's bottom edge and the button's content.

The following example gives the button 20 pixels of padding on the bottom edge only:

button.paddingBottom = 20;
The default value is 0.

See also

Button
  
paddingLeft
Type: Number
The minimum space, in pixels, between the button's left edge and the button's content.

The following example gives the button 20 pixels of padding on the left edge only:

button.paddingLeft = 20;
The default value is 0.

See also

Button
  
paddingRight
Type: Number
The minimum space, in pixels, between the button's right edge and the button's content.

The following example gives the button 20 pixels of padding on the right edge only:

button.paddingRight = 20;
The default value is 0.

See also

Button
  
paddingTop
Type: Number
The minimum space, in pixels, between the button's top edge and the button's content.

The following example gives the button 20 pixels of padding on the top edge only:

button.paddingTop = 20;
The default value is 0.

See also

Button
  
scaleWhenDown
Type: Number
The button renders at this scale in the down state.

The following example scales the button in the down state:

button.scaleWhenDown = 0.9;
The default value is 1.

See also

Button
  
scaleWhenHovering
Type: Number
The button renders at this scale in the hover state.

The following example scales the button in the hover state:

button.scaleWhenHovering = 0.9;
The default value is 1.

See also

Button
  
upIcon
Type: starling.display.DisplayObject
The icon used for the button's up state. If null, then defaultIcon is used instead.

This property will be ignored if a function is passed to the stateToIconFunction property.

The following example gives the button an icon for the up state:

button.upIcon = new Image( texture );

Alternatively, you may use setIconForState() with ButtonState.UP to set the same icon:

var icon:Image = new Image( texture ); button.setIconForState( ButtonState.UP, icon );
The default value is null.

See also

Button
 InheritedType: starling.display.DisplayObject
The skin used for the button's up state.

See also

BasicButton
  
verticalAlign
Type: String
The location where the button's content is aligned vertically (on the y-axis).

The following example aligns the button's content to the top:

button.verticalAlign = VerticalAlign.TOP;

Note: The VerticalAlign.JUSTIFY constant is not supported.

The default value is feathers.layout.VerticalAlign.MIDDLE.

See also

Button
  
wordWrap
Type: Boolean
Determines if the text wraps to the next line when it reaches the width (or max width) of the component.

In the following example, the button's text is wrapped:

button.wordWrap = true;
The default value is false.
Button
Public Constants
 ConstantDefined By
  ALTERNATE_STYLE_NAME_BACK_BUTTON : String = feathers-back-button
[static] An alternate style name to use with Button to allow a theme to give it a "back button" style, perhaps with an arrow pointing backward.
Button
  ALTERNATE_STYLE_NAME_CALL_TO_ACTION_BUTTON : String = feathers-call-to-action-button
[static] An alternate style name to use with Button to allow a theme to give it a more prominent, "call-to-action" style.
Button
  ALTERNATE_STYLE_NAME_DANGER_BUTTON : String = feathers-danger-button
[static] An alternate style name to use with Button to allow a theme to give it a highly prominent, "danger" style.
Button
  ALTERNATE_STYLE_NAME_FORWARD_BUTTON : String = feathers-forward-button
[static] An alternate style name to use with Button to allow a theme to give it a "forward" button style, perhaps with an arrow pointing forward.
Button
  ALTERNATE_STYLE_NAME_QUIET_BUTTON : String = feathers-quiet-button
[static] An alternate style name to use with Button to allow a theme to give it a less prominent, "quiet" style.
Button
  DEFAULT_CHILD_STYLE_NAME_LABEL : String = feathers-button-label
[static] The default value added to the styleNameList of the label text renderer.
Button
 InheritedINVALIDATION_FLAG_ALL : String = all
[static] Flag to indicate that everything is invalid and should be redrawn.
FeathersControl
 InheritedINVALIDATION_FLAG_DATA : String = data
[static] Invalidation flag to indicate that the primary data displayed by the UI control has changed.
FeathersControl
 InheritedINVALIDATION_FLAG_FOCUS : String = focus
[static] Invalidation flag to indicate that the focus of the UI control has changed.
FeathersControl
 InheritedINVALIDATION_FLAG_LAYOUT : String = layout
[static] Invalidation flag to indicate that the layout of the UI control has changed.
FeathersControl
 InheritedINVALIDATION_FLAG_SCROLL : String = scroll
[static] Invalidation flag to indicate that the scroll position of the UI control has changed.
FeathersControl
 InheritedINVALIDATION_FLAG_SELECTED : String = selected
[static] Invalidation flag to indicate that the selection of the UI control has changed.
FeathersControl
 InheritedINVALIDATION_FLAG_SIZE : String = size
[static] Invalidation flag to indicate that the dimensions of the UI control have changed.
FeathersControl
 InheritedINVALIDATION_FLAG_SKIN : String = skin
[static] Invalidation flag to indicate that the skin of the UI control has changed.
FeathersControl
 InheritedINVALIDATION_FLAG_STATE : String = state
[static] Invalidation flag to indicate that the state has changed.
FeathersControl
 InheritedINVALIDATION_FLAG_STYLES : String = styles
[static] Invalidation flag to indicate that the styles or visual appearance of the UI control has changed.
FeathersControl
Property Detail
baselineproperty
baseline:Number  [read-only]

Returns the text baseline measurement, in pixels.


Implementation
    public function get baseline():Number
currentIconproperty 
protected var currentIcon:DisplayObject

The currently visible icon. The value will be null if there is no currently visible icon.

For internal use in subclasses.

defaultLabelPropertiesproperty 
defaultLabelProperties:Object

An object that stores properties for the button's label text renderer when no specific properties are defined for the button's current state, and the properties will be passed down to the label text renderer when the button validates. The available properties depend on which ITextRenderer implementation is returned by labelFactory. Refer to feathers.core.ITextRenderer for a list of available text renderer implementations.

The following example gives the button default label properties to use for all states when no specific label properties are available (this example assumes that the label text renderer is a BitmapFontTextRenderer):

    button.defaultLabelProperties.textFormat = new BitmapFontTextFormat( bitmapFont );
    button.defaultLabelProperties.wordWrap = true;

The default value is null.


Implementation
    public function get defaultLabelProperties():Object
    public function set defaultLabelProperties(value:Object):void

See also

globalStyleProviderproperty 
public static var globalStyleProvider:IStyleProvider

The default IStyleProvider for all Button components.

The default value is null.

See also

isLongPressEnabledproperty 
isLongPressEnabled:Boolean

Determines if FeathersEventType.LONG_PRESS will be dispatched.

The following example enables long presses:

    button.isLongPressEnabled = true;
    button.addEventListener( FeathersEventType.LONG_PRESS, function( event:Event ):void
    {
        // long press
    });

The default value is false.


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

See also

labelproperty 
label:String

The text displayed on the button.

The following example gives the button some label text:

    button.label = "Click Me";

The default value is null.


Implementation
    public function get label():String
    public function set label(value:String):void
labelFactoryproperty 
labelFactory:Function

A function used to instantiate the button's label text renderer sub-component. By default, the button will use the global text renderer factory, FeathersControl.defaultTextRendererFactory(), to create the label text renderer. The label text renderer must be an instance of ITextRenderer. To change properties on the label text renderer, see defaultLabelProperties and the other "LabelProperties" properties for each button state.

The factory should have the following function signature:

function():ITextRenderer

The following example gives the button a custom factory for the label text renderer:

    button.labelFactory = function():ITextRenderer
    {
        return new TextFieldTextRenderer();
    }

The default value is null.


Implementation
    public function get labelFactory():Function
    public function set labelFactory(value:Function):void

See also

labelStyleNameproperty 
protected var labelStyleName:String = feathers-button-label

The value added to the styleNameList of the label text renderer. This variable is protected so that sub-classes can customize the label text renderer style name in their constructors instead of using the default style name defined by DEFAULT_CHILD_STYLE_NAME_LABEL.

To customize the label text renderer style name without subclassing, see customLabelStyleName.

See also

labelTextRendererproperty 
protected var labelTextRenderer:ITextRenderer

The text renderer for the button's label.

For internal use in subclasses.

See also

longPressDurationproperty 
longPressDuration:Number

The duration, in seconds, of a long press.

The following example changes the long press duration to one full second:

    button.longPressDuration = 1.0;

The default value is 0.5.


Implementation
    public function get longPressDuration():Number
    public function set longPressDuration(value:Number):void

See also

numLinesproperty 
numLines:int  [read-only]

The number of text lines displayed by the button. The component may contain multiple text lines if the text contains line breaks or if the wordWrap property is enabled.


Implementation
    public function get numLines():int

See also

Constructor Detail
Button()Constructor
public function Button()

Constructor.

Method Detail
createLabel()method
protected function createLabel():void

Creates the label text renderer sub-component and removes the old instance, if one exists.

Meant for internal use, and subclasses may override this function with a custom implementation.

See also

getFontStylesForState()method 
public function getFontStylesForState(state:String):TextFormat

Gets the font styles to be used to display the button's text when the button's currentState property matches the specified state value.

If font styles are not defined for a specific state, returns null.

Parameters

state:String

Returns
TextFormat

See also

getIconForState()method 
public function getIconForState(state:String):DisplayObject

Gets the icon to be used by the button when the button's currentState property matches the specified state value.

If a icon is not defined for a specific state, returns null.

Parameters

state:String

Returns
DisplayObject

See also

getScaleForState()method 
public function getScaleForState(state:String):Number

Gets the scale to be used by the button when the button's currentState property matches the specified state value.

If a scale is not defined for a specific state, returns NaN.

Parameters

state:String

Returns
Number

See also

layoutContent()method 
protected function layoutContent():void

Positions and sizes the button's content.

For internal use in subclasses.

refreshIcon()method 
protected function refreshIcon():void

Sets the currentIcon property.

For internal use in subclasses.

setFontStylesForState()method 
public function setFontStylesForState(state:String, format:TextFormat):void

Sets the font styles to be used to display the button's text when the button's currentState property matches the specified state value.

If font styles are not defined for a specific state, the value of the fontStyles property will be used instead.

Note: if the text renderer has been customized with advanced font formatting, it may override the values specified with setFontStylesForState() and properties like fontStyles and disabledFontStyles.

Parameters

state:String
 
format:TextFormat

See also

setIconForState()method 
public function setIconForState(state:String, icon:DisplayObject):void

Sets the icon to be used by the button when the button's currentState property matches the specified state value.

If an icon is not defined for a specific state, the value of the defaultIcon property will be used instead.

Parameters

state:String
 
icon:DisplayObject

See also

setScaleForState()method 
public function setScaleForState(state:String, scale:Number):void

Sets the scale to be used by the button when the button's currentState property matches the specified state value.

If an icon is not defined for a specific state, the value of the defaultIcon property will be used instead.

Parameters

state:String
 
scale:Number

See also

Event Detail
longPress Event
Event Object Type: starling.events.Event
Event.type property = feathers.events.FeathersEventType.LONG_PRESS

Dispatched when the button is pressed for a long time. The property isLongPressEnabled must be set to true before this event will be dispatched.

The following example enables long presses:

button.isLongPressEnabled = true;
button.addEventListener( FeathersEventType.LONG_PRESS, function( event:Event ):void
{
    // long press
});

The properties of the event object have the following values:

PropertyValue
bubblesfalse
currentTargetThe Object that defines the event listener that handles the event. For example, if you use myButton.addEventListener() to register an event listener, myButton is the value of the currentTarget.
datanull
targetThe Object that dispatched the event; it is not always the Object listening for the event. Use the currentTarget property to always access the Object listening for the event.

The FeathersEventType.LONG_PRESS event type is used by the Feathers Button when it is pressed for a long time.

See also

Constant Detail
ALTERNATE_STYLE_NAME_BACK_BUTTONConstant
public static const ALTERNATE_STYLE_NAME_BACK_BUTTON:String = feathers-back-button

An alternate style name to use with Button to allow a theme to give it a "back button" style, perhaps with an arrow pointing backward. If a theme does not provide a style for a back button, the theme will automatically fall back to using the default button skin.

An alternate style name should always be added to a component's styleNameList before the component is initialized. If the style name is added later, it will be ignored.

In the following example, the back button style is applied to a button:

    var button:Button = new Button();
    button.styleNameList.add( Button.ALTERNATE_STYLE_NAME_BACK_BUTTON );
    this.addChild( button );

See also

ALTERNATE_STYLE_NAME_CALL_TO_ACTION_BUTTONConstant 
public static const ALTERNATE_STYLE_NAME_CALL_TO_ACTION_BUTTON:String = feathers-call-to-action-button

An alternate style name to use with Button to allow a theme to give it a more prominent, "call-to-action" style. If a theme does not provide a style for a call-to-action button, the theme will automatically fall back to using the default button style.

An alternate style name should always be added to a component's styleNameList before the component is initialized. If the style name is added later, it will be ignored.

In the following example, the call-to-action style is applied to a button:

    var button:Button = new Button();
    button.styleNameList.add( Button.ALTERNATE_STYLE_NAME_CALL_TO_ACTION_BUTTON );
    this.addChild( button );

See also

ALTERNATE_STYLE_NAME_DANGER_BUTTONConstant 
public static const ALTERNATE_STYLE_NAME_DANGER_BUTTON:String = feathers-danger-button

An alternate style name to use with Button to allow a theme to give it a highly prominent, "danger" style. An example would be a delete button or some other button that has a destructive action that cannot be undone if the button is triggered. If a theme does not provide a style for the danger button, the theme will automatically fall back to using the default button style.

An alternate style name should always be added to a component's styleNameList before the component is initialized. If the style name is added later, it will be ignored.

In the following example, the danger button style is applied to a button:

    var button:Button = new Button();
    button.styleNameList.add( Button.ALTERNATE_STYLE_NAME_DANGER_BUTTON );
    this.addChild( button );

See also

ALTERNATE_STYLE_NAME_FORWARD_BUTTONConstant 
public static const ALTERNATE_STYLE_NAME_FORWARD_BUTTON:String = feathers-forward-button

An alternate style name to use with Button to allow a theme to give it a "forward" button style, perhaps with an arrow pointing forward. If a theme does not provide a style for a forward button, the theme will automatically fall back to using the default button style.

An alternate style name should always be added to a component's styleNameList before the component is initialized. If the style name is added later, it will be ignored.

In the following example, the forward button style is applied to a button:

    var button:Button = new Button();
    button.styleNameList.add( Button.ALTERNATE_STYLE_NAME_FORWARD_BUTTON );
    this.addChild( button );

See also

ALTERNATE_STYLE_NAME_QUIET_BUTTONConstant 
public static const ALTERNATE_STYLE_NAME_QUIET_BUTTON:String = feathers-quiet-button

An alternate style name to use with Button to allow a theme to give it a less prominent, "quiet" style. If a theme does not provide a style for a quiet button, the theme will automatically fall back to using the default button style.

An alternate style name should always be added to a component's styleNameList before the component is initialized. If the style name is added later, it will be ignored.

In the following example, the quiet button style is applied to a button:

    var button:Button = new Button();
    button.styleNameList.add( Button.ALTERNATE_STYLE_NAME_QUIET_BUTTON );
    this.addChild( button );

See also

DEFAULT_CHILD_STYLE_NAME_LABELConstant 
public static const DEFAULT_CHILD_STYLE_NAME_LABEL:String = feathers-button-label

The default value added to the styleNameList of the label text renderer.

Note: the label text renderer is not a feathers.controls.Label. It is an instance of one of the ITextRenderer implementations.

See also