Change state in button click event
<?xml version="1.0"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script> import mx.core.*; import mx.states.*; [Bindable] public var defInst:DeferredInstanceFromFunction = new DeferredInstanceFromFunction(createMyButton); public function createMyButton():Object { var newButton:Button = new Button(); newButton.label = "New Button"; return newButton; } </mx:Script> <mx:states> <mx:State name="deferredButton"> <mx:AddChild relativeTo="{myPanel}" targetFactory="{defInst}" /> </mx:State> </mx:states> <mx:Panel id="myPanel" title="Static and dynamic states"> <mx:Button id="myButton2" label="Add" click="currentState ='deferredButton'" /> <mx:Button id="myButton3" label="Remove" click="currentState =''" /> </mx:Panel> </mx:Application>