Search tutorials
USING VARIABLES TO CONTROL CLIPS
by Bryan Gaffinbsg@bryangaffin.com
How do you make menu clips close when you open new ones? Or ever go to a site and press every button at once to see what would happen? Most times, every clip or menu will pop open and stay there. Yuk.
The answer: don't use buttons to activate clips. Use them to change variables. Then make each and every clip do what it is supposed to, but only when the variable is the one the clip is looking for.
Very easy:
STEP 1: button commands:
On the stage make as many buttons as you want and put as the action in the first button:
on (release) {
if (Number(test) == 1) {
test = 0;
} else {
test = 1;
}
}
in every subsequent button, change the numbers, so in button 2 it should be:on (release) {
if (Number(test) == 2) {
test = 0;
} else {
test = 2;
}
}
note: the "if" portion is to check to see if the clip is already playing/open. If so, you'd want it to close if someone clicked the button again, right? So setting the variable to 0 will close all clips. If you don't want this, just eliminate the if statement and type:
on (release) {
test = 1;
}
STEP 2: clip actionscript 1- activating the clip
In the clips, the clip's job is to always be on the lookout for the variable that it is programmed to accept. So in the first 2 frames of clip 1 (which is waiting for button 1 to be pressed), create a loop. In the first frame type:
if (Number(_root.test) == 1) {
gotoAndPlay ("goclip1");
}
where "goclip1" is the name of the 3rd frame. In the second frame type:
gotoAndPlay (1);
This sets up the loop. As long as "test" equals anything but 1, the clip will not activate. But when the variable "test" becomes 1,the clip goes to frame 3 ("goclip1") and plays the animation.
STEP 3: clip actionscript 2- closing the clip
When the variable changes, there has to be a way to close the clips that don't correspond to the variable's new number. So instead of a stop action on the frame after the clip opens, create another 2 frame loop. And in the first frame, called "loopframe1" type nothing. In the next frame, type:
if (Number(_root.test) == 1) {
gotoAndPlay ("loopframe1");
}
As long as "test" remains 1, the clip will stay open and not appear to change, but if the value is no longer 1, then clip continues to play past this frame, and closes the animation.
All you have to do now is change the numbers in all the clips and buttons to make them do what you want, and you are done. This can be a very powerful and very easy thing to use.
Any questions, or helpful advice, contact me at bsg@bryangaffin.com
Enjoy!
| » Level Intermediate |
|
Added: 2002-04-18 Rating: 8 Votes: 107 |
| » Author |
| Bryan Gaffin is a Senior Art Director with experience in traditional design and advertising, who made the switch to new media 2.5 years ago. |
| » Download |
| Download the files used in this tutorial. |
| Download (18 kb) |
| » Forums |
| More help? Search our boards for quick answers! |
-
You must have javascript enabled in order to post comments.


Comments
There are no comments yet. Be the first to comment!