84 Chapter 4: Handling Events
For example, suppose you have a button named next_btn on the Stage. The following code
assigns a function to the button’s
onPress event handler; this function advances the playhead to
the next frame in the Timeline.
next_btn.onPress = function ()
nextFrame();
}
In the above code, the nextFrame() function is assigned directly to onPress. You can also assign
a function reference (name) to an event handler method and then define the function later.
// Assign a function reference to button’s onPress event handler method
next_btn.onPress = goNextFrame;
// Define doSubmit() function
function goNextFrame() {
nextFrame();
}
Notice that you assign the function reference, not the function’s return value, to the onPress
event handler.
// Incorrect!
next_btn.onPress = goNextFrame();
// Correct.
next_btn.onPress = goNextFrame;
Some event handlers receive passed parameters that provide information about the event that
occurred. For example, the
TextField.onSetFocus event handler is invoked when a text field
instance gains keyboard focus. This event handler receives a reference to the text field object that
previously had keyboard focus.
For example, the following code inserts some text into the text field that just lost keyboard focus.
userName_txt.onSetFocus = function(oldFocus_txt) {
oldFocus_txt.text = "I just lost keyboard focus";
}
The following ActionScript classes define event handlers: Button, ContextMenu,
ContextMenuItem, Key, LoadVars, LocalConnection, Mouse, MovieClip, MovieClipLoader,
Selection, SharedObject, Sound, Stage, TextField, XML, and XMLSocket. For more information
about the event handlers they provide, see these class entries in Chapter 12, “ActionScript
Dictionary,” on page 205.
You can also assign functions to event handlers for objects you create at runtime. For example, the
following code creates a new movie clip instance (
newclip_mc) and then assigns a function to the
clip’s onPress event handler.
_root.attachMovie("symbolID", "newclip_mc", 10);
newclip_mc.onPress = function () {
trace("You pressed me");
}
For more information, see “Creating movie clips at runtime” on page 126.