Packagefeathers.controls
Classpublic class StackScreenNavigator
InheritanceStackScreenNavigator Inheritance BaseScreenNavigator Inheritance FeathersControl Inheritance starling.display.Sprite

A "view stack"-like container that supports navigation between screens (any display object) through events.

The following example creates a screen navigator, adds a screen and displays it:

     var navigator:StackScreenNavigator = new StackScreenNavigator();
     navigator.addScreen( "mainMenu", new StackScreenNavigatorItem( MainMenuScreen ) );
     this.addChild( navigator );
     
     navigator.rootScreenID = "mainMenu";

See also

How to use the Feathers StackScreenNavigator component
Transitions for Feathers screen navigators
feathers.controls.StackScreenNavigatorItem


Public Properties
 PropertyDefined By
 InheritedactiveScreen : DisplayObject
[read-only] A reference to the currently active screen.
BaseScreenNavigator
 InheritedactiveScreenID : String
[read-only] The string identifier for the currently active screen.
BaseScreenNavigator
 InheritedautoSizeMode : String
Determines how the screen navigator will set its own size when its dimensions (width and height) aren't set explicitly.
BaseScreenNavigator
 InheritedclipContent : Boolean
Determines if the navigator's content should be clipped to the width and height.
BaseScreenNavigator
 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
 InheritedfocusIndicatorSkin : DisplayObject
If this component supports focus, this optional skin will be displayed above the component when showFocus() is called.
FeathersControl
 InheritedfocusManager : IFocusManager
FeathersControl
 InheritedfocusOwner : IFocusDisplayObject
FeathersControl
 InheritedfocusPadding : Number
Quickly sets all focus padding properties to the same value.
FeathersControl
 InheritedfocusPaddingBottom : Number
The minimum space, in pixels, between the object's bottom edge and the bottom edge of the focus indicator skin.
FeathersControl
 InheritedfocusPaddingLeft : Number
The minimum space, in pixels, between the object's left edge and the left edge of the focus indicator skin.
FeathersControl
 InheritedfocusPaddingRight : Number
The minimum space, in pixels, between the object's right edge and the right edge of the focus indicator skin.
FeathersControl
 InheritedfocusPaddingTop : Number
The minimum space, in pixels, between the object's top edge and the top edge of the focus indicator skin.
FeathersControl
  globalStyleProvider : IStyleProvider
[static] The default IStyleProvider for all StackScreenNavigator components.
StackScreenNavigator
 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
FeathersControl
 InheritedisInitialized : Boolean
[read-only] Determines if the component has been initialized yet.
FeathersControl
 InheritedisQuickHitAreaEnabled : Boolean
Similar to mouseChildren on the classic display list.
FeathersControl
 InheritedisTransitionActive : Boolean
[read-only] Indicates whether the screen navigator is currently transitioning between screens.
BaseScreenNavigator
 InheritedlayoutData : ILayoutData
Extra parameters associated with this display object that will be used by the layout algorithm.
FeathersControl
 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
FeathersControl
  popToRootTransition : Function
Typically used to provide some kind of animation or visual effect, a function that is called when the screen navigator clears its stack, to show the first screen that was pushed onto the stack.
StackScreenNavigator
  popTransition : Function
Typically used to provide some kind of animation or visual effect, this function that is called when the screen navigator pops a screen from the top of the stack.
StackScreenNavigator
 InheritedpreviousTabFocus : IFocusDisplayObject
FeathersControl
  pushTransition : Function
Typically used to provide some kind of animation or visual effect, this function that is called when the screen navigator pushes a new screen onto the stack.
StackScreenNavigator
  rootScreenID : String
Sets the first screen at the bottom of the stack, or the root screen.
StackScreenNavigator
 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
 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
 InheritedactualWidth : Number = 0
The final width value that should be used for layout.
FeathersControl
 InheriteddefaultStyleProvider : IStyleProvider
[read-only] When the FeathersControl constructor is called, the globalStyleProvider property is set to this value.
FeathersControl
 InheritedexplicitHeight : Number = NaN
The height value explicitly set by calling the height setter or setSize().
FeathersControl
 InheritedexplicitWidth : Number = NaN
The width value explicitly set by calling the width setter or setSize().
FeathersControl
Public Methods
 MethodDefined By
  
Constructor.
StackScreenNavigator
  
addScreen(id:String, item:StackScreenNavigatorItem):void
Registers a new screen with a string identifier that can be used to reference the screen in other calls, like removeScreen() or pushScreen().
StackScreenNavigator
  
Returns the StackScreenNavigatorItem instance with the specified identifier.
StackScreenNavigator
 Inherited
getScreenIDs(result:Vector.<String> = null):Vector.<String>
Returns a list of the screen identifiers that have been added.
BaseScreenNavigator
 Inherited
hasScreen(id:String):Boolean
Determines if the specified screen identifier has been added with addScreen().
BaseScreenNavigator
 Inherited
hideFocus():void
If the visual indicator of focus has been displayed by showFocus(), call this function to hide it.
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
  
popScreen(transition:Function = null):DisplayObject
Pops the current screen from the top of the stack, returning to the previous screen.
StackScreenNavigator
  
popToRootScreen(transition:Function = null):DisplayObject
Returns to the root screen, at the bottom of the stack.
StackScreenNavigator
  
pushScreen(id:String, savedPreviousScreenProperties:Object = null, transition:Function = null):DisplayObject
Pushes a screen onto the top of the stack.
StackScreenNavigator
 Inherited
Removes all screens that were added with addScreen().
BaseScreenNavigator
  
Removes an existing screen using the identifier assigned to it in the call to addScreen().
StackScreenNavigator
 Inherited
setSize(width:Number, height:Number):void
Sets both the width and the height of the control in a single function call.
FeathersControl
 Inherited
showFocus():void
If the object has focus, an additional visual indicator may optionally be displayed to highlight the object.
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.
BaseScreenNavigator
 Inherited
clearInvalidationFlag(flag:String):void
Clears an invalidation flag.
FeathersControl
 Inherited
defaultTransition(oldScreen:DisplayObject, newScreen:DisplayObject, completeCallback:Function):void
[static] The default transition function.
BaseScreenNavigator
 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
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
 Inherited
Updates the focus indicator skin by showing or hiding it and adjusting its position and dimensions.
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 the active screen changes.BaseScreenNavigator
 InheritedDispatched when the current screen is removed and there is no active screen.BaseScreenNavigator
 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
 InheritedDispatched when the width or height of the control changes.FeathersControl
 InheritedDispatched when the transition between screens has completed.BaseScreenNavigator
 InheritedDispatched when the transition between screens begins.BaseScreenNavigator
Public Constants
 ConstantDefined By
  AUTO_SIZE_MODE_CONTENT : String = content
[static] The screen navigator will auto size itself to fit its content.
StackScreenNavigator
  AUTO_SIZE_MODE_STAGE : String = stage
[static] The screen navigator will auto size itself to fill the entire stage.
StackScreenNavigator
 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
globalStyleProviderproperty
public static var globalStyleProvider:IStyleProvider

The default IStyleProvider for all StackScreenNavigator components.

The default value is null.

See also

popToRootTransitionproperty 
popToRootTransition:Function

Typically used to provide some kind of animation or visual effect, a function that is called when the screen navigator clears its stack, to show the first screen that was pushed onto the stack.

If this property is null, the value of the popTransition property will be used instead.

In the following example, a custom pop to root transition is passed to the screen navigator:

         navigator.popToRootTransition = Fade.createFadeInTransition();

A number of animated transitions may be found in the feathers.motion package. However, you are not limited to only these transitions. It's possible to create custom transitions too.

A custom transition function should have the following signature:

function(oldScreen:DisplayObject, newScreen:DisplayObject, completeCallback:Function):void

Either of the oldScreen and newScreen arguments may be null, but never both. The oldScreen argument will be null when the first screen is displayed or when a new screen is displayed after clearing the screen. The newScreen argument will be null when clearing the screen.

The completeCallback function must be called when the transition effect finishes. This callback indicate to the screen navigator that the transition has finished. This function has the following signature:

function(cancelTransition:Boolean = false):void

The first argument defaults to false, meaning that the transition completed successfully. In most cases, this callback may be called without arguments. If a transition is cancelled before completion (perhaps through some kind of user interaction), and the previous screen should be restored, pass true as the first argument to the callback to inform the screen navigator that the transition is cancelled.

The default value is null.


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

See also

popTransitionproperty 
popTransition:Function

Typically used to provide some kind of animation or visual effect, this function that is called when the screen navigator pops a screen from the top of the stack.

In the following example, the screen navigator is given a pop transition that slides the screens to the right:

         navigator.popTransition = Slide.createSlideRightTransition();

A number of animated transitions may be found in the feathers.motion package. However, you are not limited to only these transitions. It's possible to create custom transitions too.

A custom transition function should have the following signature:

function(oldScreen:DisplayObject, newScreen:DisplayObject, completeCallback:Function):void

Either of the oldScreen and newScreen arguments may be null, but never both. The oldScreen argument will be null when the first screen is displayed or when a new screen is displayed after clearing the screen. The newScreen argument will be null when clearing the screen.

The completeCallback function must be called when the transition effect finishes. This callback indicate to the screen navigator that the transition has finished. This function has the following signature:

function(cancelTransition:Boolean = false):void

The first argument defaults to false, meaning that the transition completed successfully. In most cases, this callback may be called without arguments. If a transition is cancelled before completion (perhaps through some kind of user interaction), and the previous screen should be restored, pass true as the first argument to the callback to inform the screen navigator that the transition is cancelled.

The default value is null.


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

See also

pushTransitionproperty 
pushTransition:Function

Typically used to provide some kind of animation or visual effect, this function that is called when the screen navigator pushes a new screen onto the stack.

In the following example, the screen navigator is given a push transition that slides the screens to the left:

         navigator.pushTransition = Slide.createSlideLeftTransition();

A number of animated transitions may be found in the feathers.motion package. However, you are not limited to only these transitions. It's possible to create custom transitions too.

A custom transition function should have the following signature:

function(oldScreen:DisplayObject, newScreen:DisplayObject, completeCallback:Function):void

Either of the oldScreen and newScreen arguments may be null, but never both. The oldScreen argument will be null when the first screen is displayed or when a new screen is displayed after clearing the screen. The newScreen argument will be null when clearing the screen.

The completeCallback function must be called when the transition effect finishes. This callback indicate to the screen navigator that the transition has finished. This function has the following signature:

function(cancelTransition:Boolean = false):void

The first argument defaults to false, meaning that the transition completed successfully. In most cases, this callback may be called without arguments. If a transition is cancelled before completion (perhaps through some kind of user interaction), and the previous screen should be restored, pass true as the first argument to the callback to inform the screen navigator that the transition is cancelled.

The default value is null.


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

See also

rootScreenIDproperty 
rootScreenID:String

Sets the first screen at the bottom of the stack, or the root screen. When this screen is shown, there will be no transition.

If the stack contains screens when you set this property, they will be removed from the stack. In other words, setting this property will clear the stack, erasing the current history.

In the following example, the root screen is set:

         navigator.rootScreenID = "someScreen";


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

See also

Constructor Detail
StackScreenNavigator()Constructor
public function StackScreenNavigator()

Constructor.

Method Detail
addScreen()method
public function addScreen(id:String, item:StackScreenNavigatorItem):void

Registers a new screen with a string identifier that can be used to reference the screen in other calls, like removeScreen() or pushScreen().

Parameters

id:String
 
item:StackScreenNavigatorItem

See also

getScreen()method 
public function getScreen(id:String):StackScreenNavigatorItem

Returns the StackScreenNavigatorItem instance with the specified identifier.

Parameters

id:String

Returns
StackScreenNavigatorItem
popScreen()method 
public function popScreen(transition:Function = null):DisplayObject

Pops the current screen from the top of the stack, returning to the previous screen.

An optional transition may be specified. If null the popTransition property will be used instead.

Returns a reference to the new screen, unless a transition is currently active. In that case, the new screen will be queued until the transition has completed, and no reference will be returned.

Parameters

transition:Function (default = null)

Returns
DisplayObject

See also

popToRootScreen()method 
public function popToRootScreen(transition:Function = null):DisplayObject

Returns to the root screen, at the bottom of the stack.

An optional transition may be specified. If null, the popToRootTransition or popTransition property will be used instead.

Returns a reference to the new screen, unless a transition is currently active. In that case, the new screen will be queued until the transition has completed, and no reference will be returned.

Parameters

transition:Function (default = null)

Returns
DisplayObject

See also

pushScreen()method 
public function pushScreen(id:String, savedPreviousScreenProperties:Object = null, transition:Function = null):DisplayObject

Pushes a screen onto the top of the stack.

A set of key-value pairs representing properties on the previous screen may be passed in. If the new screen is popped, these values may be used to restore the previous screen's state.

An optional transition may be specified. If null the pushTransition property will be used instead.

Returns a reference to the new screen, unless a transition is currently active. In that case, the new screen will be queued until the transition has completed, and no reference will be returned.

Parameters

id:String
 
savedPreviousScreenProperties:Object (default = null)
 
transition:Function (default = null)

Returns
DisplayObject

See also

removeScreen()method 
public function removeScreen(id:String):StackScreenNavigatorItem

Removes an existing screen using the identifier assigned to it in the call to addScreen().

Parameters

id:String

Returns
StackScreenNavigatorItem

See also

Constant Detail
AUTO_SIZE_MODE_CONTENTConstant
public static const AUTO_SIZE_MODE_CONTENT:String = content

The screen navigator will auto size itself to fit its content.

See also

AUTO_SIZE_MODE_STAGEConstant 
public static const AUTO_SIZE_MODE_STAGE:String = stage

The screen navigator will auto size itself to fill the entire stage.

See also