ActionScript 3.0 :: Removing A Movieclip Completely?
Nov 13, 2009
How do I completely remove a movieclip? I am able to create a moviecilp, then add it to the stage with addChild(), then I am able to remove it from the display list by using removeChild()However, the movieclip is still present. Here's what I did.I created a movieclip.. which has a trace on the 10th frame : trace("Movieclip still exists")On the 20th frame I have : a reference to a function which is on the document classThis function is this
I need to remove a MovieClip from the stage completely and keep it that way. The following code works just fine but when I come back to that frame later the MovieClip is there again.
I made a game where you have a bunch of enemies coming at you from the top of the screen and you move your mouse to avoid them but now i am trying to add a shooting ability and I tried using the code
if (shipenimy.hitTestObject(bullet)){ removeChild(shipenimy); }else { }
but when this happens it removes the child from being displayed but even though it is not displayed if you go to where it would be it still counts it as a collision and will end the game even though the child has been removed and I need to find a way to completely remove it so that there is not a chance of running into it after you have shot it.
To remove a dynamic displayObject completely you need removeChild or removeChildAt(index) remove all the refrences to the displayObject nulling the displayObject
But this is my case
PHP Code:
//here recto is a MovieClip on stage//i creat a dynamic display Object named newMcvar newMc:MovieClip =new MovieClip();newMc.graphics.beginFill(0x000000,1);newMc.graphics.drawRect(0,0,10,10);newMc.graphics.endFill();recto.addChildAt(newMc,1);//i refrence the newMc using
[Code].....
I believe that it is refrencing newMc but I am not sure why nulling refrenceMc has effect on newMc
To remove a dynamic displayObject completely you need removeChild or removeChildAt(index) remove all the refrences to the displayObject nulling the displayObject
But this is my case
ActionScript Code: //here recto is a MovieClip on stage //i creat a dynamic display Object named newMc var newMc:MovieClip =new MovieClip();
[Code].....
I believe that it is refrencing newMc but I am not sure why nulling refrenceMc has effect on newMc
To remove a dynamic displayObject completely you need RemoveChild or removeChildAt(index) Remove all the refrences to the displayObject Nulling the displayObject
But this is my case PHP Code: //here recto is a MovieClip on stage //I creat a dynamic display Object named newMcvar newMc:MovieClip =new MovieClip(); newMc.graphics.beginFill(0x000000,1); newMc.graphics.drawRect(0,0,10,10); [Code] ..... is referencing newMc or creating a copy of it. I believe that it is refrencing newMc but I am not sure why nulling refrenceMc has effect on newMc.
In document class action script file I add a movie clip to stage using
Code: public var square:Square square = new Square addChild(square)
So it adds square to stage.Then after sometime I want it to be removed. I call a function "removeSquare" also located in document class. It executes the following code. And it removes the square from stage visualy.
Code: trace("proff that it's executed") removeChild(square) square = null
Then of course I want to add a square to stage again, using code I written at top of the post. And remove it again, and so on..But game is lagging more and more and more. So I guess that the square is not properly removed. If you need more details about my code feel free to say, I just written that since I really doesn't know what else should be important.
how do I completely remove a movieclip that is created as a new class.I have an event listener that does a removeChild like this
e.target.parent.removeChild(e.target);
is this enough or do I have to 'null' the object? I can't just do 'e.target = null' because the property is read only. Will the internal garbage collection do the rest for me if I have no references somewhere else?
on release of the button, how do I navigate to a completely different movie clip? so I know about _parent and _root in terms of moving between layers but say I wanted the press of a button to gotoAndStop(2); inside a different movie clip that is not parented or on the _root?
completely remove the child of clip at 0 index? I read somewhere you should set to null to all the references to that clip, but I have no other reference in my code. The clip at 0 was added via a regular addChild().
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).