Book HomeActionScript: The Definitive GuideSearch this book

16.3. Adding Scripts to Buttons

We add code to a button in order to tie the execution of that code to a user event. For example, if we want the clicking of a button to advance the playhead of a movie to a frame labeled section1, we add the following code to that button:

on (release) {
  gotoAndStop("section1");
}

To add code to a button, we select the button on the Stage and then add the code to the Script pane of the Actions panel. Code on buttons must always be placed in an event handler that identifies the circumstances under which the code should execute. For example, the event that triggers most button actions is release. We might also use the rollOver event, causing code to execute when the mouse moves over the button, not when the button is pressed:

on (rollOver) {
  gotoAndStop("section1");
}

For a complete description of button event handlers see Chapter 10, "Events and Event Handlers".

Though it is legal to place thousands of lines of code on a button, it's often a bad idea to overload a button with code. Whenever possible, generalize and package the behavior of button code into functions attached to the button's timeline. For example, we could add the following code to a button:

on (release) {
  title._xscale = 20;
  title._yscale = 20;
  title._alpha  = 50;
  title._gotoAndPlay("fadeout");
}

But we're better off placing that code in a function and calling the function from the button:


// CODE ON FRAME 1 OF THE BUTTON'S TIMELINE
function transformClip(clip, scale, transparency, framelabel) {
  clip._xscale = scale;
  clip._yscale = scale;
  clip._alpha = transparency;
  clip.gotoAndPlay(framelabel);
}
// CODE ON BUTTON
on (release) {
  transformClip(title, 20, 50, "fadeout");
}

This approach keeps all of our code centralized and easy to maintain and allows us to quickly apply the button's behavior to many buttons with minimal effort.

TIP

Button code must be attached to a button object on stage, and must include an event handler. Button code without an event handler will cause an error, and it's not possible to attach code to the internal UP, OVER, DOWN, and HIT frames of a button symbol.



Library Navigation Links

Copyright © 2002 O'Reilly & Associates. All rights reserved.