ActionScript 3.0 :: Events And Nested Movieclips ?
Feb 20, 2011
I am having the following issue with this navigation I am building. I am trying to build a 3 tear drop down navigation, where each buttons sub menu is placed inside that button. My buttons are actually just movieclips, so I have nested movieclips structured something like this:
Button_1
-> Button_1_1
-> Button_1_2[code]....
Each one of the buttons has their own class with it's event listenerens inside it. What happens now, is that when I click for example Button_1_2_1, I get it's event, but also, the event for Button_1_2 and Button_1. Initially, I fixed this, by attaching the events to a hitArea inside that movieclip, but now I am running into other issues and was wondering if there was a way to turn this off, so if movieclip for Button_1_2_1 is clicked, I only get the event for that one, not it's parents?
I have a movieclip that contains other movieclips, however the nested movieclips don't seem to detect mouse events.Via searching, I found that only the parent can detect these events, but is there a way to pass the mouse click from the parent movie clip to the children? I want to have a small movieclip. When you rollover it, it scales up, and then you should be able to click other various things on it. When you rollout, it scales back down.If this is not practical, what's the best way to keep a movieclip "attached" to another and scale, without childing them?
I have some nested movieClips. I've got an event listener on the parent listening for a mouse click. Problem is, the listener never picks up the click.[code]On movieClipStack, I can see that mouseEnabled = true. In addition, buttonMode = true works exactly like it's supposed to. But onStackClicked never happens - movieClipStack just isn't detecting any sort of mouse event.
I am an AS3 code developer but this time I need to deal with a FLA that has an instance on timeline with complex nesting of movieclips and textfields (that are named via the instance field in Flash). The problem is that events (I put in the Documentclass) on nested movieclips inside that timeline placed instance are never dispatched.
example code: // my instance on Stage in all Frames of the timeline public var thewall:MovieClip; // event directly on thewall works
I am an AS3 code developer but this time I need to deal with a FLA that has an instance on timeline with complex nesting of movieclips and textfields (that are named via the instance field in Flash). The problem is that events (I put in the Documentclass) on nested movieclips inside that timeline placed instance are never dispatched. example code:
Code: // my instance on Stage in all Frames of the timeline public var thewall:MovieClip;
I want to test mc animations without having to hit F12 to see if they work correctly. For instance, if I have an animation movieclip and then I make another movieclip and drop that aforementioned movieclip within, and animate [via the timeline or library preview] I'm unable to see on-the-fly what my animation looks like... it only shows the top most nest, unless I F12 it.
So if I have a character blinking eyes (one movieclip) and then I create another movie clip of the face, and put that aforementioned movieclip within, the preview animation within the library does not show how it'll be viewed when F12'n it.,,,, it'd be great to see your animations on the fly.
I made a custom loader to replace the urlLoader and even tried a replacement for the _loader using the same custom event.Works great for the first addEventListener:
Code: urlLoader.addEventListener(Event.COMPLETE, onSwfLoaded).But stops on the second addEventListener.If I just apply the custom event to the following...
Code: _loader.addEventListener(Event.COMPLETE, onLoaderInit); VERSUS
Code: _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderInit);it works just fine.As soon as I use it on the contentLoaderInfo line, it throws that type error cannot convert CustomEvent to Event error.I also double checked that my custom event listener was overriding clone()properly and it looks like it does.
I have a data grid and there's a method attached to clicking on any item in a row of the grid.Now, some of the items in the table row are also buttons. Each of these are associated with a different action.We only want one of these actions to be performed.[code]we have currently a member variable to track which selection was made and to ignore the the contents of the other method (the else portion of the method resets this value).Now, if the methods just happen to execute in a different order (or at the same time), the behavior will be unpredictable.Is the member variable flag the way to do this (it smells so bad)?
I'm building an event calendar as part of a website .The calendar is divided into two sections, "calendar" on the right with the actual calendar displayed, and "calendarContent" on the left, where information about the evnts is supposed to show up. The different frames in "calendarContent" are all labeled. Within "calendar" I have different movieclips for each month, and inside each month I put the buttons that open the event descriptions in "calendarContent."
Now, for some reason it's not working. The function I'm trying is the following:
MovieClip(root).pages.calendarContent.gotoAndStop("artsundays");where "pages" is the name of the parent movieclip that "calendar" and "calendarContent" are both inside, and "artsundays" is the label for the frame in "calendarContent" I want to go to. The function is placed within one of the month movieclips. I get the following error:TypeError: Error #1010: A term is undefined and has no properties.I've also tried usng MovieClip(parent) instead of MovieClip(root).pages (since "pages" is the parent), as well as a few other variations, but the problem remained.
In a application I have a menu MC that slides out nicely from the side as the mouse is over a hotspot. It pops out and stays out as long as the mouse is over the menu.The problem is that in this menu I have child MCs that I want to click on to do stuff... However when the mouse pointer slides into one of the icons the menu interprets that as a MOUSE_OUT event and slides away.I got it to work with the icons as Bitmap objects but you can't add Mouse events to bitmaps...I could do that by checking if I click inside a bitmap object but that seems ineffective.
I'm making a game in which a character walks along a motion guide to the point on the guide nearest the users click. Easy enough.This motion guide is contained within a MovieClip named Sc1.Now, within the motion guide MovieClip the character is a combination of various MovieClips contained in a single MovieClip, which is placed at the beginning of the guide and tweened to the end of the line. This tween and the MovieClip's component's timelines are controlled based on the point of a users click. Furthermore to add a level of 'realism' the character turns to face front, back or sides, based on the gradient of the slope at which it is travelling, giving the illusion of walking towards or away from the screen.All this works fine. The character instance (SWJim) will walk from left to right, turn and stop at the correct point. The character itself behaves too, moving arms and legs as it should.
However, in order to get the character to walk back from right to left, i have used a boolean to flag the timeline as in 'reverse' mode and the prevFrame() function. This raises an interesting problem with the character in which it will move as planned, but won't turn to face the appropriate direction and the character MovieClip won't play (i.e. arms, legs etc. will remain in their default positions). In order to turn, the character has a series of 5 frames in which it faces different directions. A gotoAndStop(); is used to change the direction of the character.I did a bit of searching and it seems that prevFrame() may have been causing the animations to stop because it was in my onLoop() function, called by the ENTER_FRAME event listener. In order to combat this I used a timer instead to call the onLoop() function, but that produced pretty similar results.[code]
I'm having problems getting my interface to work. I've set up a simple animation inside a MovieClip, and at one point it diverges into two different paths (like a Choose Your Own Adventure). Trouble is, I need people to be able to click on different nested MCs, and none of them work because I think Flash takes every click as being on the parent clip. The nested clips are on the top layer of the parent clip.
How can I get Flash to recognise these clicks and react accordingly? It should be so simple, but it isn't!
I've tried putting the buttons outside and on top of the parent clip so they override it, but it stuffs up the rest of the animation, because they're visible on the stage the whole way through and I've got everything on one frame so I can't make it transparent until needed. (Even if I could, they take up most of the screen, so you'd constantly be clicking on them accidentally.)
I'm having a really hard time trying to get my nested movieClips to align. I have 1 major movie clip called 'game' and inside of it, is a background MC called 'bg' and a box mc named 'box'. I want to get a newChild from the library named 'circle' to attach inside the bg clip but align with the box clip.
set up : game.box - I want my newCircle to align to this MC coordinates. game.bg.newCircle - a newChild will be added to this bg MC and I want it to align with the box MC
Code: import flash.display.*; import flash.geom.Point; var newCircle:MovieClip = new circleClip();
Let's say i have a 3 movieclips which are nested one in other like this:A-> B-> CAnd i would like to find out C movie clip (which is in B mc and B mc is in A mc) coordinates relative to global stage, how can i accomplish that?
I have an mc, with a nested mc inside, which has a nested mc inside that.When I rollOver the container mc, It wont allow me to perform a onRelease with the 2nd nested mc .. WHY is this?my code will explain it visually better :::
I have a movie clip (assigned to a class) with several keyframes. Each keyframe consists of another movieclip, which contains an animation and all use the same name. Lastly, several of the animations contain a third movieclip, which is also assigned to a class and also use the same name. I need the first movieclip to speak to the third, unfortunately, it simultaneously tells me that the clips in the second layer (the ones at the keyframes) exist and do not exist. Namely: second layer "does not exist" in that the primary movieclip has only one child: a null. If I add other movieclips to the primary's frames, they also report back as nulls depending on what frame I'm on. I've tested this in several parts of the code, though I suppose it's possible that I managed to pick five equally bad spots. It's just so bizarre I still don't know what to think about it. However, the second layer of named clips are there, but I can only prove it by deliberately breaking the code in hopes of deliberately getting a reference error (by attempting to make the clip private, which isn't allowed given my setup).
We have found that if you skip over frames that include nested movieclips with embedded timeline sounds, those sounds loop endlessly.For example, if you gotoAndStop(20) from frame 2, but frames 5-10 have a CLIP A that embeds CLIP B, which has a timeline sound, you hear that sound over and over again (even though the playback head never touched the frames with that clip).Does anyone have a convenient workaround (other than the obvious -- playing sounds dynamically, etc). For animation-sync reasons we need to use timeline sounds in this particular case.
I have an animation of a spinning globe made from 2 maps placed back-to-back and a circular mask over them. The animation loops endlessly to simulate a spinning globe. This animation was made into a movieclip (globeSpin) which is nested inside another movieclip ontainer_mc). I want to stop the spinning effect when a user mouses over and start it up again when they mouse out. Code is below:
I've created a movieclip (called Level), and nested inside it are several different movieclips. When my game starts, a movieclip is created called hero.mc, which can move around. I want this movieclip to be able to perform hit testing with the movieclips inside the Level movieclip, however when I use the code:
I have a movieclip "squareA" -- inside of squareA, on frame 2 is a movieclip called "squareB". I tried the following code: Actionscript Code: squareA.x = 10squareA.y = 10squareA.gotoAndStop(2)squareA.squareB.x = 10squareA.squareB.y = 10
But I get the following error: TypeError: Error #1009: Cannot access a property or method of a null object reference. at problem_fla::MainTimeline/problem_fla::frame1() If I put SquareB in frame 1 of SquareA -- it works.
I have a master MC that's added to the stage via addChild(p2_mc). Inside that p2_mc, I have others MC'S (added to the stage manually, not via addChild). One of them is instanced fond_mc. I want to position that fond_mc in the middle of the stage using that line of code WHEN the stage is resized. Obviously, the following line is into the resize function: fond_mc.x = stage.stageWidth/2;
I works but returning faulty results because it uses left corner of the mc instead of registration point, which is top and center. I tried all math formula I could think of to no results. Keeps positioning the fond_mc wrongly. I know this is related to registration OR stage measurement. Is there a way to reset stage.stageWidth values INSIDE the resize function?
I have a bunch of movie clips in my main timeline with at least 2 nested clips inside them, MyMc.nested1.nested2 etc. I have given the top most movie clips that sit on the main timeline instance names. In a document class I created a private variable typed as an array and placed all those MC names in that array. I then looped through the length of the array and assigned 2 event listeners to each instance. Example:
for (var i:uint = 0 ; i < _activities.length ; i++){ _activities[i].buttonMode = true; _activities[i].addEventListener(MouseEvent.MOUSE_DOWN, pickUp); _activities[i].addEventListener(MouseEvent.MOUSE_UP, dropIt);}
in the event pickup() is were my trouble seems to come in.In the pickup function I have the following:
event.target.startDrag()
This seems to work, but only on the lowest nested Movie clip......nested2I can use event.target.parent.parent.startDrag() and that seems to work.... Except when I place another movieclip in the second layer of the of the MyMC , if that is accidently clicked, it will now drag the Stage.I attempted to use the event.target.mouseChildren = false but that only seems to work on the lowest nested object... nested2 as that seems to be the one I am clickingIs there something I am missing to say, click only the top level mc then ignore all nested mc?
I'm loading content swfs into an Air App. The swfs are loaded into the non-app sandbox, and any communication is via the parent/child sandbox bridge. The swfs have timeline code. This code executes fine. The swfs also have mcs on the timeline - any code inside these mcs, or any child mcs of these mcs, is ignored. Simple traces do not execute below the top level timeline of the loaded swfs. I have tried naming the child mcs. I have tried exporting them in the library. Neither makes any difference. When I run the swf standalone, I see my diagnostic traces. When I load the swf, I only see the traces for the top level timeline.
I have a movieclip added to the stage through a function. ActionScript Code: function myFunctionOne():void{ var myClipA:clipA = new clipA(); myClipA.name = "myClipA"; addChild(myClipA); }
To access this item on the stage I have to use: ActionScript Code: getChildByName("myClipA"); I have some other movieclips INSIDE this clip that have also been dynamically added. If I want to reference one of those clips I have to reference them by name using getChildByName. [Code]..... But is there a better way to reference movieclips if they are created inside a function, or is there a way to create them so they are always globally accessible?
I am having trouble where this error is showing up: TypeError: Error #1009: Cannot access a property or method of a null object reference. at EssayMain() I have some trace statements in place