Applying States

By default, the base state is applied to an application or component. You can define many states for each application and component, but you can apply only one state at any one time. You can apply a state using the currentState property. Example 12-1 defines a state that adds a checkbox (see Adding and Removing Components” later in this chapter for details on adding components to states). The state is applied when the user clicks the button in the base state.

Example 12-1. Applying a state

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

    <mx:VBox id="vbox">
        <mx:Button label="Add Checkbox" click="currentState='newCheckbox';" />
    </mx:VBox>

    <mx:states>
        <mx:State name="newCheckbox">
            <mx:AddChild relativeTo="{vbox}">
                <mx:CheckBox id="checkbox" label="New Checkbox" />
            </mx:AddChild>
        </mx:State>
    </mx:states>

</mx:Application>

Note that the value of the currentState property is a string specifying the name of the state to apply. In the preceding example, when the user clicks the button, the value of newCheckbox is assigned to the currentState property of the application. The Flex framework then looks for a state with a name attribute of newCheckbox and applies that state. In the preceding example, the state with the name of newCheckbox uses an <mx:AddChild> tag to add a new checkbox to the VBox instance. If you want to return to the base state, you can assign a null value or an empty string to the currentState ...

Get Programming Flex 3 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.