ActionScript 3.0 :: AddEventListeners Not Working After Removing MovieClip
Feb 16, 2011
I have created a simple game which is started by a start button in a Movieclip that opens at the beginning using the code :
var splashscreen:MovieClip = new Splash();
splashscreen.x = 0;splashscreen.y = 0;
addChild(splashscreen);
The splashscreen movieClip has its own code :
Play_btn.addEventListener(MouseEvent.CLICK,playgame);
function playgame(e:Event):void{parent.removeChild(this); Play_btn.removeEventListener(MouseEvent.CLICK,playgame)
}
When I run the game the splashscreen does load and then disappears when the Play button is pressed but none of the eventlisteners seem to work. The background moves, the enemy ships fire but I can't move the ship or fire using the keyboard. The game works perfectly well when I don't use the splashscreen at the start.
I'm creating a drop down menu and when I addEventListeners to check the clicks on the invisible buttons on frame 19 of the "menu" movieclip, it gives me an error. T really hate doing rollover with actionscripts. The download link for the fla can be found in below. Sorry for posting an external download link as the file is 7mb+! [URL]
Don't care about that squares that is inside the functions, I'm just using it as a example.I'd like that both eventlisteners when removed use the same onclick3 function, in the following code they recognize the onclick3 because it is outside of the eventlisteners. So, how can I remove the eventlisteners and both of them use the same onclick3 function?
[code]...
I need both of them to use the same onclick function, and not 2.
How do I correctly remove/stop a timer in actionscript? do it like in this piece of code but timer has been set to fire frame1SoundTimerHandler in 200 seconds later :
The following creates movieclips from XML. Everything worksgreat.One problem however. I need each MC to have it's own mouse event listener anddon't know how to achieve this because I don't have specificinstance names to refer with. I want to update textfields etc, with specific data when a
i have to make a drag and drop thingy in actionscript 3.0. Now we had another actionscript project before and then i had some extra classes but most things i put in the main class and it was all working fine. Someone told me that i put too much in my main class and that i should make more classes like a class for every object you interact with. Dont know if hes right but he acted like he was.
Now back to the problem. I made a main class connected directly to my fla in its properties. Then i made another class for the game itself, cause maybe it needs an intro and other things so i want to separate them in their own classes and start them with the main class. now in the class for the game itself i want to be able to click an object with the mouse. I was just testing with a trace. When i click the object it only traces like 1/20 clicks i make, tryed alot of things, when i put the same code in the main class with stage.addEvent blabla it will respond every time but as soon as i try to put in the class for my game it only responds like 1/20 times i click. Wth?
Now i can put all my code in the main class again and make another 1000 line code with a couple of other small classes but this time i want to do it right so what am i doing wrong? Heres some code too
This is the main class dressUp is the game class, it doesnt do much just define the game class and change the mouse pointer.
EDIT: We work in a project group so another reason i want to make alot classes is so we can work on different classes separately. But i promised to have this done this weekend and there not so good in actionscript either.
I am tring to remove the flvplayback compiled clip from the stage with the following code but it only stop the movie, it does not remove the actuall player.
on (release) { _root.instance1.instance2.my_FLVPlybk.stop(); _root.instance1.instance2.my_FLVPlybk.removeMovieClip(); }
I am working on someones as2 file and I noticed that they had an onEnterFrame running non stop in the movie. I don't use onEnterFrame personally. So I tried to create a conditional to stop it. While the conditional worked its stopped the fluid animation they had used. So I need to figure out some other way to get rid of the onEnterFrame. Anyone have any ideas here? The AS basically resizes a box on stage when certain movies are loaded.[code]
This is probably something very simple that I just can't seem to get to work. Basically I'm trying to use a variable to be called inside of an array instead of the actual array so a simple example would be
Code: var people:Array = [john,tom,ann]; var selected = john; trace(people[selected]);
I get an error everytime I try to use a variable in place of and actual element
I have a project where I'm removing code for bandwidth detection, but after I remove it, my code in the }else{ won't execute anymore like it did before. Not sure what I'm missing? Maybe a pair of curly braces somewhere? Here is before, and after bandwidth code removal:
stop(); images_xml = new XML(); images_xml.onLoad = startImageViewer;[code].....
Is there a way to remove a class linked to a movieclip? For instance, I've got a ball (e.g. ball0_mc) that's placed in a target. The way the ball is dragged and dropped into a target is by using a class called Ball. What I would like to do is remove the Ball class from ball0_mc once it's been placed in a target so that it can't be dragged or dropped anymore.
ActionScript Code: public function onRequestStart(navigationEvent:NavigationEvent):void { playScreen = new ZombieHorde();
[Code]....
When I do removeChild on playScreen, the movieclip just becomes invisible, it doesn't actually get REMOVED. Is it possible to delete a movieclip that you've created just like that?
im creating a game where when the spacebar is pressed the character attacks with a sword.the sword is an animated movieclip and at the end of the movieclip i have a his.parent.removeChild(this); to remove the movie clip but i get an errorCode:TypeError: Error #1009: Cannot access a property or method of a null object reference.
I have 5 movieClip buttons. I want the GALLERY button to stay on the stage at all times, "which it does" but i want when the user clicks on 1 of the other 4 buttons for the remaining 3 to disappear. Example...when the user clicks on the KIDS button, the COUPLES, PORTRAITS AND BELLIES buttons disappear, or when the user clicks on COUPLES, for the KIDS, PORTRAITS AND BELLIES buttons to disappear, and so on.
I have 5 movieClip buttons. I want the GALLERY button to stay on the stage at all times, "which it does" but i want when the user clicks on 1 of the other 4 buttons for the remaining 3 to disappear. when the user clicks on the KIDS button, the COUPLES, PORTRAITS AND BELLIES buttons disappear, or when the user clicks on COUPLES, for the KIDS, PORTRAITS AND BELLIES buttons to disappear, and so on.
Code:
import fl.transitions.Tween; import fl.transitions.easing.*; var currentPage:MovieClip = gallery_mc
I have a MovieClip that I dynamically add other MCs as children to. Now I'd like to have a function that removes ALL children at once. I tried a loop with (i < mc.numChildren) but somehow it will only remove even-numbered children, the odd ones stay on stage?
I have random buttons on the stage that I have set up so each one, when clicked, will load different movieclip.These movieclips load directly on top of each other in the exact same place.The problem I'm having is the previous movieclip does not clear off the stage when the the next button is clicked.I need to set up a condition that will remove the current movieclip when another button is selected to load the next movieclip.Below is part of my code that needs editing. I've been researching switch, else, and other conditional statements but can't figure out how to make this happen.I have the fla or swf file for viewing, let me know.
I placed a movieclip on the stage, what functions are there to remove it? removeMovieClip(target); Only seems to work on MCs which have been attached to the stage E.g. attachMovieClip(); The _visible property keeps the movieclip there just keeps it invisible. What completely removes it? It is called tankCPU.
In my document class I have assigned the root of fla to theRoot movieclip as theRoot = MovieClip(this.root); And as my program proceeds I have added several childs to theRoot. Now at the end of my program I need to delete all the childs of theRoot. So,how can I do this without individually deleting single childs.
In my .fla file, I have a MovieClip (we'll call it Clip1) linked to a corresponding class defined in a separate .as file.There's a case where I want to create a new MovieClip (Clip2) where Clip1 is, then remove Clip1. This case is dealt with by a function in Clip1's class.So, when I get to removing I do:ActionScript Code:this.parent.removeChild(this)Now, if the DocumentClass created Clip1 and placed it on the screen, this goes fine. But if Clip1 was placed on the stage in the .fla file (by dragging and dropping), it looks like Clip1 is not removed. I think it does get removed, but for some reason it gets recreated. This is the problem.
i am having trouble with removing a movieclip off the stage, i am using removechild but i get an error:
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller. at flash.display:isplayObjectContainer/removeChild() at agptest_fla::MainTimeline/removeArrow()
here is my script
ActionScript Code: var aLeft:MovieClip = new arrowLeft(); var n1:Number = 0;
I have a function called changeMovie which is supposed to load a new movie/swf into a already established container.I can get the new movie to load (all these movies have sound embedded in them) but I can not figure out how to get the old movieclip out of memory.I can foresee an instance of memory overload in my application down the line.I am using Flash CS3 with AS3.[code]As it stands now, I can get the new movie to play and be shown but the old movie clip still continues to play "in the background - along with its sound".
I've currently got an array made up of Movie Clips, and a variable to tell us how long that array is. It looks like this:
ActionScript Code: var coinArray:Array = [coin1, coin2]; //an array which contains all of the coins var numCoinArray:int = coinArray.length; //how many objects are in the coinArray
I've got a function called collisionTest which tests a collision between two objects.
So, I've got a loop set-up so if my character and a coin collides, it removes the coin it collided with from an array. It looks like this:
ActionScript Code: function coinCollect(evt:Event) { for (var i:int = 0; i < numCoinArray; i++) {
[Code].....
Is this trying to reference my objects as something other than MovieClips and is finding them and not recognizing them? I'm completely lost on this and can't understand why it doesn't work.
I've seem to have hit a snafu in a small animation I am creating for my next tutorial. What I have, is a movie clip that gets duplicated when the space bar is pressed. The movieclip has actions setup so that when the movieclip reaches a certain y value, it will remove itself via this.removeMovieClip()
The problem is, every movie clip that is duplicated does remove itself like it is supposed to. The exception is the original movie clip that I duplicate from. That movie clip seems to want to stay and cause problems (it is not removing itself because it isn't duplicated via attachmovie or the duplicateMovieClip method).