Setting Event Handlers

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.

Note

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>

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.