Packagefeathers.controls
Classpublic class Button
InheritanceButton Inheritance BasicButton Inheritance FeathersControl Inheritance starling.display.Sprite
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
  baseline : Number
[read-only] Returns the text baseline measurement, in pixels.
Button
 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
 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
 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
 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
 InheritedincludeInLayout : Boolean
Determines if the ILayout should use this object or ignore it.
FeathersControl
 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
  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
 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
 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
  numLines : int
[read-only] The number of text lines displayed by the button.
Button
 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
 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
 Inheritedwidth : Number
[override] The width of the component, in pixels.
FeathersControl
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 globalStyleProvider 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
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
  
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.
Button
  
getIconForState(state:String):DisplayObject
Gets the icon to be used by the button when the button's currentState property matches the specified state value.
Button
 Inherited
getSkinForState(state:String):DisplayObject
Gets the skin to be used by the button when its currentState property matches the specified state value.
BasicButton
 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
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
move(x:Number, y:Number):void
Sets both the x and the y positions of the control in a single function call.
FeathersControl
 Inherited
Resets the styleProvider property to its default value, which is usually the global style provider for the component.
FeathersControl
  
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
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
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
focusOutHandler(event:Event):void
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 after the component has validated for the first time.FeathersControl
 InheritedDispatched after initialize() has been called, but before the first time that draw() has been called.FeathersControl
  Dispatched when the button is pressed for a long time.Button
 InheritedDispatched when the width or height of the control changes.FeathersControl
 InheritedDispatched when the display object's state changes.BasicButton
 InheritedDispatched when the the user taps or clicks the button.BasicButton
Styles
 StyleDefined By
  
A style name to add to the button's label text renderer sub-component.
Button
  
defaultIcon : DisplayObject
The icon used when no other icon is defined for the current state.
Button
 Inherited
defaultSkin : DisplayObject
The skin used when no other skin is defined for the current state.
BasicButton
  
disabledFontStyles : TextFormat
The font styles used to display the button's text when the button is disabled.
Button
  
disabledIcon : DisplayObject
The icon used for the button's disabled state.
Button
 Inherited
disabledSkin : DisplayObject
The skin used for the button's disabled state.
BasicButton
  
downIcon : DisplayObject
The icon used for the button's down state.
Button
 Inherited
downSkin : DisplayObject
The skin used for the button's down state.
BasicButton
 Inherited
focusIndicatorSkin : DisplayObject
If this component supports focus, this optional skin will be displayed above the component when showFocus() is called.
FeathersControl
 Inherited
focusPadding : Number
Quickly sets all focus padding properties to the same value.
FeathersControl
 Inherited
The minimum space, in pixels, between the object's bottom edge and the bottom edge of the focus indicator skin.
FeathersControl
 Inherited
The minimum space, in pixels, between the object's left edge and the left edge of the focus indicator skin.
FeathersControl
 Inherited
The minimum space, in pixels, between the object's right edge and the right edge of the focus indicator skin.
FeathersControl
 Inherited
The minimum space, in pixels, between the object's top edge and the top edge of the focus indicator skin.
FeathersControl
  
fontStyles : TextFormat
The font styles used to display the button's text.
Button
  
gap : Number
The space, in pixels, between the icon and the label.
Button
  
Determines if the button's label text renderer is created or not.
Button
  
The location where the button's content is aligned horizontally (on the x-axis).
Button
  
hoverIcon : DisplayObject
The icon used for the button's hover state.
Button
 Inherited
hoverSkin : DisplayObject
The skin used for the button's hover state.
BasicButton
  
iconOffsetX : Number
Offsets the x position of the icon by a certain number of pixels.
Button
  
iconOffsetY : Number
Offsets the y position of the icon by a certain number of pixels.
Button
  
iconPosition : String
The location of the icon, relative to the label.
Button
 Inherited
Determines if a pressed button should remain in the down state if a touch moves outside of the button's bounds.
BasicButton
  
labelOffsetX : Number
Offsets the x position of the label by a certain number of pixels.
Button
  
labelOffsetY : Number
Offsets the y position of the label by a certain number of pixels.
Button
  
minGap : 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.
Button
  
padding : Number
Quickly sets all padding properties to the same value.
Button
  
paddingBottom : Number
The minimum space, in pixels, between the button's bottom edge and the button's content.
Button
  
paddingLeft : Number
The minimum space, in pixels, between the button's left edge and the button's content.
Button
  
paddingRight : Number
The minimum space, in pixels, between the button's right edge and the button's content.
Button
  
paddingTop : Number
The minimum space, in pixels, between the button's top edge and the button's content.
Button
  
scaleWhenDown : Number
The button renders at this scale in the down state.
Button
  
The button renders at this scale in the hover state.
Button
  
upIcon : DisplayObject
The icon used for the button's up state.
Button
 Inherited
upSkin : DisplayObject
The skin used for the button's up state.
BasicButton
  
verticalAlign : String
The location where the button's content is aligned vertically (on the y-axis).
Button
  
wordWrap : Boolean
Determines if the text wraps to the next line when it reaches the width (or max width) of the component.
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

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

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

Style Detail
wordWrapstyle
wordWrap: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.

verticalAlignstyle 
verticalAlign: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;

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

See also

upIconstyle 
upIcon: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

scaleWhenHoveringstyle 
scaleWhenHovering: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

scaleWhenDownstyle 
scaleWhenDown: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

paddingLeftstyle 
paddingLeft: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

paddingBottomstyle 
paddingBottom: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

paddingRightstyle 
paddingRight: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

paddingTopstyle 
paddingTop: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

paddingstyle 
padding: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

minGapstyle 
minGap: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

labelOffsetYstyle 
labelOffsetY: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

labelOffsetXstyle 
labelOffsetX: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

iconPositionstyle 
iconPosition: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

iconOffsetYstyle 
iconOffsetY: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

iconOffsetXstyle 
iconOffsetX: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

hoverIconstyle 
hoverIcon: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

horizontalAlignstyle 
horizontalAlign: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;

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

See also

hasLabelTextRendererstyle 
hasLabelTextRenderer: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.

gapstyle 
gap: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

fontStylesstyle 
fontStyles: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

downIconstyle 
downIcon: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

disabledIconstyle 
disabledIcon: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

disabledFontStylesstyle 
disabledFontStyles: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

defaultIconstyle 
defaultIcon: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

customLabelStyleNamestyle 
customLabelStyleName: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

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