Using ActionScript to Define States

In most cases, it’s more appropriate to use MXML than ActionScript to define states. However, sometimes you want to define states dynamically (in which case you must use ActionScript). One such example is when you want to define a multipage form based on data loaded at runtime. Creating the form dynamically is advantageous because you can change the form without recompiling and republishing the SWF. However, because form elements aren’t known at compile time, you cannot use MXML to define the states.

The ActionScript used to work with states corresponds to the MXML. In the following sections, you’ll learn about the ActionScript equivalents to the MXML you learned about earlier.

Defining States

When defining states using ActionScript, you use the mx.states.State class. You can use the constructor as part of a new statement to define a new State instance:

var stateA:State = new State();

You can assign a name to a state using the name property, in much the same way as you’d use the name attribute of the <mx:State> tag:

stateA.name = "exampleStateA";

And just as you can use the basedOn attribute of the <mx:State> tag to define state inheritance, you can use the basedOn property of the State class. The following code defines a new state that is based on the state constructed in the previous two code snippets. Note that the basedOn property expects a string specifying the name of the state upon which you want to base the new state; you cannot assign it a reference ...

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.