Use the <mx:SetEventHandler>
tag to add or change an event handler for a component. The tag
requires that you specify values for target
, name
,
and handler
attributes. The target
attribute value needs to be a reference
to the component for which you want to add or change an event handler. The
name
attribute value needs to be the
name of the event. The handler
attribute specifies the new event handler.
SetEventHandler
is the MXML
equivalent to using the addEventListener()
and removeEventListener()
methods in
ActionScript.
Example 12-10 modifies Example 12-8 so that it uses one button rather than two to toggle the enabled state of a text input. It does this by changing the event handler for the button (as well as the label) when it is clicked.
Example 12-10. Setting event handlers
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:HBox id="hbox"> <mx:Button id="button" label="Enable" click="currentState='enabled';" /> <mx:TextInput id="textinput" enabled="false" text="example text" /> </mx:HBox> <mx:states> <mx:State name="enabled"> <mx:SetProperty target="{textinput}" name="enabled" value="{true}" /> <mx:SetEventHandler target="{button}" name="click" handler="currentState='';" /> <mx:SetProperty target="{button}" name="label" value="Disable" /> </mx:State> </mx:states> </mx:Application>