|
|
|
Using Variables to control Clips
Author: Bryan Gaffin | Email
Advertisement
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.
We hope the information helped you. If you have any questions
or comments, please don't hesitate to post them on the
Forums section
Submit your Tutorial at Click Here
|
|
|