Buttons actioning in different movie clips?
So ive set up some buttons into a movie clip, but i want to get them performing actions in a movie clip that is within another clip.
For example, the code below is what I have attached to one of my buttons. The Movieclip 2photosMC2 is inside a DIFFERENT movie clip to the ones where the buttons are stored. How can I script so that the button actions activate the correct clip?
on(release){
photosMC.gotoAndPlay("img 02");
With the code above, photosMC is the movie clip i want to play and img 02 is within this. The button with this code in is in a different movie clip to the one in which photosMC is held
Any ideas?
Many Thanks
Dave
If you get away from attaching code to buttons you might find it easier to manage that targeting you will need to do. If you assign instance names to your buttons and movieclips, then you can have your code in the main timeline and assign the interaction to the objects from there. As an example, le's say you have a button named "gtn" inside a movieclip named "btnHolder" that sits on the main timeline. And you want to have that button tell a movieclip named "mc" that sits inside another movieclip named "mcHolder" that is also on the main timeline. Then in the main timeline you could use...
btnHolder.btn.onRelease = function(){
mcHolder.mc.gotoAndPlay("img02");
To do it the way you want would require using _root or _parent targets, which is usually better to avoid...
on(release){
_root.mcHolder.mc.gotoAndPlay("img 02");
or maybe...
on(release){
_parent.mcHolder.mc.gotoAndPlay("img 02");
Similar Messages
-
Hello,
I am creating a program that is going to help students learn to read. In my project are pages of text with each word having a button that when pressed will display a movieclip presentation about that word (its pronounciation and spelling etc..). In the project I am working on now I have over 450 unique presentations of words to deal with. I don't want to have all of these hundreds of movie clips on the stage and tell them one at a time to stop and rewind and then have one play each time a word button is pressed. That seems to be very inefficient to me. So I want to do this with some code in Actionscript 3.
I know I can dynamically add movieclips to the stage using addChild(movieclipname) and remove them using removeChild(movieclipname) but there is a problem. I have hundreds of unique movieclips and I don't want to have to manage hundreds of variables containing the indivudual movieclip instancess. It is a real pain having to figure out what instance is still on the stage before i delete it.
In Adobe Director all I have to do is this:
on mousedown me
sprite(me.spritenum).member = member("somenewmember:)
end
and that was it
But if I do this in actionscript 3:
removeChild(some_mc)
some_mc still exists in memory. And I have to know exactly what variable it is to remove or else the movie will fail with an error. If I try to be brutish about it and try to implicitly remove all 450 movieclip instance variables from the stage I will get at least 449 errors.
What I want to do is this:
removeChild(some_mc)
some_mc = void //or //delete some_mc
var some_mc:MovieClip = new someother_mc();
addChild(some_mc)
but this doesn't work
How am I going to remove one of 450 movie clips and add a new totally different movie clip without the code knowing exactly what the last movie clip was? I suppose if could remove a child from the stage based on a string name then I could hold that name in a variable for later disposal.Can I do this?
Thanks for any help you can give me. I am new to actionscript.Hey I think I may have a solution:
//begin code
var myMC:MovieClip = new ball();
var starMC:MovieClip = new star();
var youpresseeditMC:MovieClip = new youpresseedit();
starMC.name = "star";
myMC.name = "ball";
youpresseeditMC.name = "youpresseedit"
addChild(myMC);
box.addEventListener(MouseEvent.MOUSE_DOWN, replaceball);
press_BTN.addEventListener(MouseEvent.MOUSE_DOWN, replaceballwithtext);
function replaceball(event:MouseEvent):void {
trace(myMC.name)
removeChild(myMC);
myMC = starMC;
addChild(myMC);
trace(myMC.name)
function replaceballwithtext(event:MouseEvent):void {
trace(myMC.name)
removeChild(myMC);
myMC = youpresseeditMC;
addChild(myMC);
trace(myMC.name)
///end code
This works. I see the ball object replaced by the star and I am able to do this by manipulating just myMC. Is there anything I should be concerned with in this approach?
Thanks for your help -
Playing different Movie Clips onRollover?
I have several buttons that I would like to play different
movie clips
onrollover on the stage. So if button 1 is rolled over it
plays a clip
in the lower right corner and when rolled off it stops and if
button 2
is rolled over it does the same.
How is this done?
Thanks!This is the code I am currently using to play and stop a
movieclip:
myPlay_btn.addEventListener(MouseEvent.CLICK, playMc);
myStop_btn.addEventListener(MouseEvent.CLICK, stopMc);
function playMc(e:MouseEvent):void{
my_mc.play();
function stopMc(e:MouseEvent):void{
my_mc.stop();
1. How do I drag my movie clips onto the stage, but not have
them
display until the button is rolled over?
2. Would this code just be applied for each button and
modified from
CLICK to OnRollover?
Thanks!!!!
kglad wrote:
> assign a rollover listener to button 1 and in its
listener function apply the play() method to your right corner
movieclip. likewise for button 2. -
Making a button rollover change a movie clip's frame
Hi again everyone,
I knew how to do this in AS2 but now I am having problems
with making a button on the stage goto a frame in a movie clip on
the stage.
I've attached a sample of my code below, hopefully you'll see
the error and be able to point it out to me?
I have a movie clip on the stage that has different
information in different frames. I want to make it so that when
someone rolls over the button, the movie clip fades in and goes to
the correct frame to display the information.
With this setup the way it is below, I keep getting "Warning:
3590: void used where a Boolean value was expected. The expression
will be type coerced to Boolean.
I know where the problem is happening, "function
XXX(event:MouseEvent):void {navigateToURL(XXXweb)}"
How can I write this differently and eliminate this problem?
Thanks,
JeremiahI'll give that a shot, thanks!
A follow up question to that one, is there a way to make it
so that I can have one rolled over function applied to several
buttons / frames in the movie clip? This movie clip has 50+ frames
in it and if I could reduce my coding, it would make life a lot
easier.
Thanks,
Jeremiah -
Dynamic text in different movie clip
Inside scene one i have a movie clip that contains a movie
clip that contains a dynamic text field. Also inside Scene one I
have a different movie clip that contains a movie clip that
contains a movie clip that contains a input text field. And I need
for the user to type in to the input text field and see what they
are typing show up in the dynamic text field. What would that
script look like and where would I put it? Can anyone help
please?hi!
Lets say you have your dynamic clip on the same level as the
movieclip containing your input field.
_root.dynamic_texfield_name.text =
_root.name_of_movieclip.input_texfield_name.text;
If you need the dynamic textfield to be updated as soon as
the user types something in the input field you can use a onChange
handler.
_root.name_of_movieclip.input_texfield_name.onChange =
function(){
_root.dynamic_texfield_name.text =
_root.name_of_movieclip.input_texfield_name.text;
} -
Flash Buttons and a nested movie clip
I have made my movie clip and now I want to nest it into a
button. I am not sure what code I need to use for this and how to
nest it. I want, when a person rolls over the button for the movie
clip to run. When they roll off of the button the movie clip stops.
When they click on the button it takes them to a link. If anyone
can please help me with this, I would SO greatly apprecaite it.
Thank You ahead of time.Thank You SOOOO Much for replying to this. I can't tell you
how much I appreciate your help.
I just assumed that was the only way I could do it, (nest
it.) So, my MC is called jiggle.
So everywhere you have the my_mc. Should I replace it with
jiggle.onRollOver etc....?
ALso you say to attach the code to the action layer in the
frame the MC appears, not in the MC itself.
So, in the timeline that I have my MC , I have an actions
layer. Do I not want an actions layer there? Should I just save the
timeline with my MC and then cut and paste it into another timeline
that has the actions layer?
I actually have 5 of these MC.that all need to do the same
thing, they are each for a different button. -
Button not working in Movie Clip
I'm building a small 'table builder' app for a client. This
is my first major project in flash and I've encountered something I
cannot figure out for the life of me.
In the .fla below there's a movie clip 'scroller' it has
buttons in it which load .png's to the main stage. Some of the
buttons work, some don't.... I can't figure out why. Even when I
duplicate a button sometimes it doesn't work.??? If I take a button
that's not working in the movie clip and cut/paste onto the main
timeline it ALWAYS works. I've been pulling my hair out over this
for the last two days . I have even started the whole project from
scratch just to try and find out where I went wrong... but to no
avail..... Any help would be GREATLY appreciated. I'm stuck on a
hump and I need some help to get off of it.
Here's a link to my file. I've stripped away all the styling
elements so it should be pretty clean cut when you see it. Thanks
for any help or guidance!
http://www.buddyscampfire.com/tableBuilder.zipA few errors: Scene 1 frame 1 Actions layer. You are
referring to buttons inside of the scroller, and you don't have
too. They aren't doing anything. All you need on that frame is:
function startLoading(whichImage) {
loadMovie(whichImage, "imageLoader");
_root.onEnterFrame = function() {
infoLoaded = imageLoader.getBytesLoaded();
infoTotal = imageLoader.getBytesTotal();
percentage = Math.floor(infoLoaded/infoTotal*100);
infoField.text = percentage+"%";
if (percentage>=100) {
delete this.onEnterFrame;
infoField._visible = false;
Then on the Scroller you have that function again. Remove it
from the scroller, as it does nothing there. Inside of the scroller
all you need is code to attach png files from pressing the buttons.
Make sure each button has a unique instance name, which isn't the
case right now. You have like three buttons called imgbtn1. Fix
that. -
Access Button contained in a movie clip
This is for beginners or those not familiar or having
diffculty with getting embedded buttons to work.
This is a how to on using actionscript in your main time line
that listens for events for button(s) located inside of a
movieclip.
I spent hours trying to figure out why I could not access my
button that was inside of a movie clip from the main ROOT or
_level0 of my scene. When I placed the AS inside the movieclip that
the button was inside of, the button worked but when I put the same
code, no changes, on the main timeline nothing happened.
myMovie_mc.myButton_btn.onRelease = function() {
trace("The Button Works!");
Your can also use onPress, onRollOver or any of the button
actions you would if you created the AS on the button itself.
myMovie_mc.myButton_btn.onRelease = function() {
function() part of the code can also be function():Void
First you tell flash where the button is located. Starting
from the main timeline you start with the name of the movie. This
is where I had trouble and why my buttons did not work. This part
of the code is the INSTANCE name NOT the label you named the movie
that displays in the library.
CREATE AN INSTANCE NAME on the movie clip. Select the movie,
in the properties bar you will see a field where you place the
instance name. I always end the name with _mc, or _btn to tell me
that it is a movie or a button so when I go back through the AS I
know what that object is that is being referenced.
myMovie_mc <-- This is the INSTANCE NAME of the movie clip
myButton_btn <-- This is the name of the button INSTANCE
NAME that resides inside the myMovie_mc movie clip
onRelease <-- This is the event listened for, it could
also be onPress, onRollOver or any other button events
= function() <-- This is needed and tells flash that this
code is treated as a function so that when the event happens, in
this case onRelease, the code inside the { } is executed. This
could also be = function():Void
All the parts before the set to symbol or the = sign needs to
be seperated with a period, though NOT between the event listened
for and the set to symbol or = sign.
myMovie_mc.myButton_btn.onRelease = function():Void
Put your code here that you want performed when button is
Released...
The reason my code didn't work was because I did not give an
instance name to the movie clip. You must give instance names to
ANYTHING you call within AS code. Including buttons, MC's, symbols
etc... or else nothing will happen.
Now, if you are having same problem I had, the AS worked on
the same time line level as the button was on but NOT when placed
in parent or main time line, you now know how to fix it.
This works in AS2, Flash8 and Flash9. I don't have AS3 yet
but the code should work in AS3 also.
Hope this helps someone, I searched for this info in the
forums and could NOT find it. I stumbled upon my error after many
hours of trial and error. So next time if I have this problem
again, a forum search will bring this post up in the results. LOL
Thanks.Nice post. One small addition to this is that you can also
just specify a function name instead of using "=function() {".
For example:
myMovie_mc.myButton_btn.onRelease = myFunction;
function myFunction():Void
Put your code here that you want performed when button is
Released...
This could be used in a couple of ways. First, the way you
mentioned in your post. Second, you can use this method to have the
program simulate a button press (even if the user does not click on
the button). Since the function will execute even if you just call
it like: myFunction();
Just my 2 cents.
Tim -
Making Button links within a movie clip
I am attempting to learn more Flash in general and
actionscript in particular. I have created a flash piece that
consists of 4 buttons within a movie clip that is being masked by
another movie clip. One movie is the set of 4 buttons. The other
movie is a "spotlight" that moves with the cursor. As the spotlight
shines on each button, the button's text changes color and is "lit
up".The Over state of each button is set to cause the button to
change color. When I put a keyframe in the Down state of each
button in order to add actionscript to create the action that makes
the button clickable to take the viewer to a web page, it tells me
that no actions can be given to this Down state. If I try using
Behaviors to accomplish the same thing, it tells me that Behaviors
are not supported. If I put actionscript into the actions layer of
the timeline, it does not do the required action, i.e. clicking on
the buttons leads nowhere. I have tried moving the actionscript
before, between, and after the setInterval and setMasker
actionscript that controls the interaction between the two movie
clips (which work perfectly). I have tried inserting an actions
layer into the button movie clip--same result--nothing. I have
tried putting the actionscript in the second frame of the actions
layer (both in the main timeline and in the movie clip), all to no
avail. I did give each button an instance name and used them in the
actionscript.
Here is the actionscript I am using for one of the buttons:
book.onPress = function(){
book.getURL("http.//www.bainbridge.wednet.edu");
I do not get an error message with this actionscript. I just
don't get sent to the web page. I am using Flash 8.
What else I should be doing? Is this a problem because the
cursor is already attached to an action? I am sure that this must
be possible, if only I knew more.
Thanks for helping.do you have the actual mc identified as ( book ) on the root
as well as the code i posted above? if so, are the code and the mc
on the same frame? also you should note that the code posted above
is meant to be placed on your root time line, not directly on the
mc identified as ( book ). one more thing: you must target your mc
( book ) correctly.
target like this:
IF YOU ARE ON THE MAIN TIME LINE ( _root ):
// if ( book ) is setting on the _root already then your
target path is simply book.onRelease.
// if ( book ) is setting inside another movieclip on the
_root, find out what movieclip ( book )
// resides in. that will now be the first part of your target
path.
// next find out if ( book ) resides in yet another
movieclip. if so, that will be the next part of
// your target path.
// continue this until you reach ( book ). the entire path
you took to reach ( book ) is your
// target path.
// you can also click on the target icon in your actionscript
pane to insert a target path for
// your movieclip.
here is an example in which ( book ) resides inside another
movie clip ( yourMovieClip ) on your _root:
yourMovieClip.book.onRelease = function () {
getURL("
http://www.cnn.com/"); -
Rollover buttons that play a movie clip.
Hello,
I am new to Flash and I am trying to accomplish a simulation such as this example, http://www.its-about-time.com/investinesart/coalplantvirtualtour.swf. I have all of my movie clips done, but how do I tell a rollover button to play a specific movie clip? I also want to have all the movie clips to play simultaneously via a rollover button as shown in the example. I've attached a captured image of my timeline, if that helps. I've tried everything so far, but nothing is working! What is the simplest way of doing this?
I have this inside one of the movie clips (mc_2) in a seperate layer under - (actions)
RO_btn.onRollover = function(){
mc_2.play();
On the main timeline I have an actions layer with this:
stop();
Thinking that this may stop all of my movie clips but it doesn't.
Should I make an actions layer in each movie clip with this syntax huh? stop();?
I'm frustrated!!
Thanks, if you can help!
MGHi,
I have made something that you are looking for.
It will be of help to you.
basically you will have to create a few movie clips namely:
2 buttons: (name them a_btn, b_btn, c_btn, d_btn, e_btn)
3 movie clips (I am taking example image1_mc, image2_mc, image3_mc)
in each of these movieclips.place 2 frames and on second frame put your movieclip(one in one).on both the frames put stop()
now click on a_btn and write this script
on (rollOver) {
_root.image1_mc.gotoAndPlay(2);
_root.image2_mc.gotoAndPlay(2);
_root.image3_mc.gotoAndPlay(2);
on (rollOut) {
_root.image1_mc.gotoAndPlay(1);
_root.image2_mc.gotoAndPlay(1);
_root.image3_mc.gotoAndPlay(1);
with this all 3 animations will work simultaneously. if you need to run any one of the movieclips at a time the you can address that mc in particular
.Say if you want only 1 mc to move at a time then put this on btn 2
on (rollOver) {
_root.image1_mc.gotoAndPlay(2);
on (rollOut) {
_root.image1_mc.gotoAndPlay(1);
.Dont forget to give proper instance names to movieclips.(they are in properties panel.)
Cheers! -
Buttons not working in movie clips
I have multiple movie clips on stage (all in separate layers, of course) as well as buttons on stage to play each movie clip. There are buttons inside each movie clip. The problem is that the buttons inside the top layered movie clip work, but the others in the movie clips below don't.
This is frustrating!! Can anyone help???It shouldn't matter which layer things are on. If they are separate movielcips, one should not impact another. What version of actionscript are you using? Do any of the movieclips have mouse interactive code assigned to them?
-
Animated drop down buttons not working in movie clip
Hi,
I am working on this site: (AS2)
http://www.steamandclean.com/Index_w_1.html
I have two types of drop down menu. One under Commercial and one under Technical
The buttons are movie clips. The drop downs are also movie clips that start in frame 2 and are triggered on rollover.
The child buttons are buttons living on the drop down movie clips. They are set to getURL
As you see they are not willing to neither link to any url or will they run their move clip animation. One is a button and one is a movie clip.
The left movie clip has a mask, but it makes no difference if I remove the mask . It also has a emboss filter and no difference is I take that away either.
All of it is in one flash movie right now, but I will be splitting it up in a master navigation movie and individual swf's soon.
Right now I have the main movie, then the button MC then the dropdown MC and in the drop down MC I have placed either a animated (button) MC or a button. So it nested in nested in.......
In both cases I scripting the child buttons like this:
on (rollOver) {
gotoAndPlay(2);
on (rollOut) {
gotoAndPlay(6);
on (release) {
getURL("http://steamandclean.com");
I have also tried to use
_parent.getURL and _root.getURL in stead of just get URL, but it does not work.
The drop down buttons seem to be buried. In the left side the whole drop down panel seems to act like a link?
What am I doing wrong?
Can you help?
ggaardeHi Ned
Thank you for your reply again.
I figured it out.
Your reply prompted me to have my main button on rollover to go to a frame number on the main time line and then move the content of the drop down movie clip to that frame.
The drop down panel now work and the child buttons animation now work as well. I just had to find a way to make the drop down panel disappear on rollout. Since I could not script the actual drop down panel I created three skinny invisible buttons and placed them on the right, left and button of the drop down panel. I scripted them to go back to frame 1 on both rollover and rollout. Done.
See the result there:
http://www.steamandclean.com/Index_w_1.html
(Left side only)
Thank you for your help.
ggaarde -
Button in a nested movie clip-Help!
Hello!
I have an issue that I have never been able to solve and need
to now since I am on a tight deadline.
I have a movie clip button on my main timeline. The code
works fine (up, over and out). Inside that movie I have an
animation where a bubble appears with text, our mission. If I use
the URL link for text it works fine. The problem is I need, when
clicked on, a UILoader to load a file. If I put the correct code on
the main timeline I get an error since that pop-up has not loaded
yet. If I put the correct code(I used before on main timeline only)
in the movie where the pop-up is I also get an error which send the
file into an eternal loop. What am I doing wrong??
I would greatly appreciate any help with this.
Thanks.
RobHi Ned,
Thank for the quick response. The button does have an instance name of "myreserve_btn" and it only seats on page layer in frame 3. and I changed publish settings and got this output message:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at SpaLuvicebestmassageoptionintown_fla::MainTimeline/frame3()[SpaLuvicebestmassageoptionint own_fla.MainTimeline::frame3:1]
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at SpaLuvicebestmassageoptionintown_fla::innnerbody_25()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at flash.display::MovieClip/gotoAndStop()
at SpaLuvicebestmassageoptionintown_fla::MainTimeline/bodymassagebtn_clicked()[SpaLuvicebest massageoptionintown_fla.MainTimeline::frame1:12]
Is there a way around this?
thanx in advance -
Make action script into movie clip
Hi,
I have used some action script to make a turning wheel with several logos in it. Now I want to make that wheel into one single movie click so I can zoom in and out when mouse over. How would I do this?
Here is the file with the action script
http://www.weidts.de/cs3.zipyou have a button with what instance name on which timeline
that should direct which movieclip to what frame? -
Movieclip display different movie clip
I have 2 movieclips in different places in my movie called
movieclipA and movieclipB. Is there a way to tell movieclipB to
display what's in movieclipAMovieclipA contains dynamic text fields, MovieclipB contains
Input text fields. When the user enters text into the textfields in
movieclipB the text appears in movieclipA. I need to show another
instance of movieclipA at another place in my movie. The problem is
the tex that is input into the textfields in movieclipB only shows
up in one instance of movieclipA. I need it to show in both
instances.
Maybe you are looking for
-
Urgent help in BAPI_GOODSMVT_CREATE
REPORT ztest. DATA: gmove_header LIKE bapi2017_gm_head_01, gmove_code LIKE bapi2017_gm_code. DATA: BEGIN OF gmove_line OCCURS 0. INCLUDE STRUCTURE bapi2017_gm_item_create. DATA: END OF gmove_line. DATA: headret LIKE bapi2017_gm_head_ret, matdoc TYPE
-
Why i have to specify the parameters (property and name) in both tags?
Recently i learned how to populate a html:select with data from a DB table with a int value and a String value (value and label of an option). For that i create a business object that represent one pair value&label (i called categoryBO) and another b
-
Hi guys, I noticed there is a slight light grey border around the edges of my videos when I play it on my iPad. The border is on the edges of the video itself and not the actual box/wrapper the video is going into. I ensured the video has no border w
-
Facetime reverted back to older version after Lion install.
I purchased Factime from App Store and after upgrading to Lion OS, it has been reverted back to Version 1.1. App store is asking me to purchase it back again to upgrade it to V 1.2. Does it mean for every bug fix and version upgrade i have to pay app
-
I have trouble connecting. Please help.
I plug my iPod Nano, the second generation into my laptop. It works fine for a couple of months. Then I tried to plug it in this week but my iPod seems to be charging, but I can't edit my songs. Anotherwards, I can't add songs, delete, etc. because m