ActionScript 3.0 :: Garbage Collector - How To Dispose Off Unneeded Objects
Mar 18, 2010
I'm forgetting now exactly how I should dispose of unneeded objects. In the past, every object/class I created had a public dispose() function which removes all added listeners inside it and called the kill/dispose function on any children of it that may need the same (so it worked its way down the tree, as this process can continue for as many children/grandchildren there are in the list). So basically, the code in the parent class would look like this:
Code:
childObj.removeEventListener(MouseEvent.MOUSE_DOWN, anotherHandler);
childObj.dispose();
childObj = null;
...and the childObj class would look like this:
[Code] .....
Do I need to set any variables/objects defined in the child class's class scope to null prior to setting the class itself to null? Or is this handled automatically when I set the class itself to null from the parent (assuming these class-scope-defined variables/objects have no listeners or child objects which need to be disposed themselves)?
View 4 Replies
Similar Posts:
May 14, 2010
I have ship game that i create using falsh as3. but i have the problem with memory usage. the memory usage still increase when game played. whereas the System.gc was called, but the memory still increase.
View 1 Replies
Sep 11, 2010
I am creating a bunch of movieclips when I first start the flash movie.I then put them into an array and use functions to add and remove them by selecting a random index in the array.When they are removed are they marked for garbage collection?Or can I just keep creating them.Might be hard to understand so code is below
var mc1:mov1 = new mov1();
var mc2:mov2 = mov2();
var mc3:mov3 = mov3();
var mc4:mov4 = mov4();
var theRandomClip:Number;
var movieClipArray = new Array(mc1,mc2,mc3,mc4)
function getRandom():void{
theRandomClip = Math.floor(Math.random()*movieClipArray.length);
addChild(movieClipArray[theRandomClip]);
}
function remove():void{
removeChild(theRandomClip);
}
//Then I would call them in succesion many times
getRandom();
remove();
getRandom();
remove();
//etc do I need to worry about them getting garbage collected and no
//longer being available?
Hope that makes sense
View 1 Replies
Aug 30, 2010
Here's my question. Suppose I've written some AS3 code like:
statementOne;
statementTwo;
Is there any possibility that the garbage collector will run during or between my two statements, or does it only run after my "user" code has finished and returned control up to flash? We have an A-Star codeblock that's sometimes slow, and I'd like to eliminate the GC as a potential culprit. The codeblock is obviously more complex than my example above, but it doesn't involve any events or other asynchronous stuff.
View 6 Replies
Sep 23, 2010
fully removing objects from memory, but I still think I'm not getting it. I've written a test script that looks the following:The stage has is of class MemTest
Code:
package
{
import flash.display.*
import flash.events.*
[code]...
There is approximately a 3x difference in the rate of gain of memory usage between simply letting the movieclips accumulate or running removeChildforever() in the enterframe. There doesn't seem to be a difference between using the "killme = null;" line or not.However, I am still seeing an constant rate of increase in memory usage of about 3 megs over the course of a minute, running at 120 fps. why is the memory usage still going up? Is garbage collector run so infrequently that it hasn't happened after 7200 frames?
View 3 Replies
Nov 14, 2011
Lets say a scene started off around 70-80mb, it loaded a swf in, and by removing the event listener and setting objects to null and numbers to 0 before unloading the swf,and went back to the original scene, the memory stack up till like 80mb++, and every time I repeats the same process the memory goes up higher,is that normal? or its a memory leaking issue?
View 4 Replies
Aug 22, 2010
Looks like the garbage collector is not removing movieclips that have textfields set to TLF. I'm using Flash Builder's profile inspector and TLF brings in a bunch of objects and prevents the clip from being removed by the garbage collector (including all the objects that TLF put in memory). How could Adobe release CS5 with such a crappy implementation of text? If there is no solution I will have to avoid using TLF text for all my projects.
View 11 Replies
Jul 3, 2011
I've coded a 2000 line game on one actions layer (facepalm*) and I just recently learned about the GC (garbage collector). I've looked around a bit and can't, how to trace the source of it. There is an interesting article that mentioned event listeners and for every addEventListener there should be a removeEventListener. My game has 60 adds and only 15. What I can't make sense is that the mc's that have the event listeners are never removed, but just moved off of the stage. Others are just made invisible. So if the event listener is added once, why would the memory keep growing? (I'm using the Windows Task Manager to monitor this). Another point was to remove objects so that the GC can do its work. What I did was create an object, add it to an array then null it.
_object1 = new _barrel();
_object1.x = objectPosition;
_object1.y = _defaultFloorBoundary.y;
instanceArray[objectNumber] = _object1;
_object1 = null;
Then removed the object from the array.
for ( var ii:int = 0; ii<instanceArray.length - 1; ii++ ) {
stage.removeChild(instanceArray[ii]);
delete(instanceArray[ii]);
instanceArray[ii] = null;
}
View 1 Replies
Feb 20, 2012
take a look at the following code
var a = new View();
a = null;
....
class View {
[Code]...
will a be in memory after a = null? Does addEventListener adds a strong refernce?
View 3 Replies
Nov 13, 2010
after assigning loaded XML data to an array of objects, i would like to remove the XML from memory, or at least available to the garbage collector. however, doing so also removes the assigned object values in the array. rather than calling XMLdata = null;, i'm calling System.disposeXML(XMLData); as directed by the documentation:
[Code]...
View 1 Replies
Jul 21, 2009
I have checked and rechecked, and I do not know why these "buckets" aren't being killed when I run the reset menu function, a fresh set of eyes could really help.
Code:
package com.Views {
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
[Code]...
i'm sure there are a lot of problems, but the only one I care about is destroying those buckets. inside the buckets, I have a listener for "removed from stage", and that kills all the listeners, etc, inside the buckets.
View 4 Replies
Mar 16, 2009
I'm developing a touchscreen application in AS3, and I havesome problems because the applications reaches 1,5 Gigabyte ofmemory if it's keep running for an hour.this memory size is because I show some videos in streaming,one after another (not in the same), and then they are not garbagecollected: I set the references to the videos to null and I removethe listeners, but flash seems to keep them in memory. I tried todelete the code section about the videos, and I have no problemswith memory (I also load some external images with the videos), soI'm pretty sure they're guilty in some way...I read that there's a bug in flash so displayobjects are notgarbage collected even if you remove the pointers to them: is it
View 1 Replies
Apr 28, 2010
May I know what is the proper way to keep track of display objects created and hence allow me to remove it efficiently later, for garbage collection. For example:
for(i=0; i<100; i++){
var dobj = new myClass(); //a sprite
addChild(dobj);
[code]......
View 3 Replies
Feb 27, 2009
I've been in a trouble with "removeChild" for a while. I know there must be some great discussion around but just could not find some nice posts in details.
View 2 Replies
Nov 12, 2009
How do I make Flex/ActionScript 3 objects eligible for garbage collection? What are the thumb rules?
View 5 Replies
Jan 22, 2011
I'm wondering how to garbage collect a variable in Flex even if there are other objects binded to it.
View 1 Replies
Jun 1, 2011
I want to know about the Object type specifically when it comes to garbage collection in Flash.
I know that items will be ready for garbage collection in situations like this:
[Code]...
View 2 Replies
Jun 20, 2011
I was thinking about Flash GC the other day and came up with a question about how reference counting would work in the following 4 class scenario (assume GuiMain is the movie's document class):
[Code]...
View 4 Replies
May 30, 2010
I havve accidently created extra unneeded key frames in a layer, in the middle of motion tween. I was wondering how to change these keyframes, without deleting them so not to change the length?
View 3 Replies
Jun 18, 2009
when I create a variable like [code]does that get rid of the Sprite that was formerly held by s or is it just going to stay in memory?
View 3 Replies
Feb 1, 2011
Do you need to have a destroy/dispose method on your Document Class? Say I have a Document Class that has the following
- mouse event listeners
- timers running and or enter_frame listeners
- class variables
Do I need to have a destroy or dispose method that:
- removes event listeners
- stops timers
- nulls class variables
Or is this only something I need in other objects (sprites, movieclips) that are added to the stage of the Document class?
View 2 Replies
Jul 13, 2011
I am in a very peculiar situation here with my AS3 code. I was profiling my app in Flash Builder 4.5.1 as it seemed that it wasn't GC-ing some objects properly.
how to get rid of this object? Or how to determine what is holding it alive?
What does 1 Path mean? What is that GC Root and how it got there?
I am using robotlegs with IModuleContext, SignalCommandMap, LazyMediatorMap.
EDIT #1: It could be related to the robotlegs injector issue... or not, still waiting for some answers.
View 1 Replies
May 20, 2010
I've decided to move on to AS3 (and maybe AS4 in the future). I've done PHP object oriented programming and Java oriented as well, but Flash is a bit different because of actual visual things that occur.
I tried to follow a very simple tutorial. I made a "collector" MovieClip and added both the identifier "collector" and the class "collector" to it. I added the project class as "superClass".
In superClass.as I had the following lines of code:
ActionScript Code:
package {
import flash.display.MovieClip;
import flash.display.Sprite;
[Code]....
is to an undefined method. I don't really see how this could be, since I have the collector class.
View 1 Replies
Mar 1, 2010
1: I upload an image
2: Without altering it,I make a copy of it and use it display to users in resized format
note: I won't display the original image.
3:Now when user deletes the resized image,i need to delete the image loaded as bitmap i.e. the original image which i won't be displaying
For that I used bitmap.bitmapData.dispose() method.But,it doesn't free up the memory taken by the bitmap.For instance at initial state the memory usage is 58 Mb and upon loading 3 images the size increases to 87 Mb.And when I delete all the images the size decreases to 81 MB only.
View 6 Replies
Oct 22, 2009
how do you dispose a class which doesnt get added to the display list?
instantiate:
Code:
var myClass:Class = new Class(parameters);
do you just say this?
dispose:
Code:
myClass = null;
View 1 Replies
Jun 6, 2010
This is my scenario
1: I upload an image
2: Without altering it,I make a copy of it and use it display to users in resized format
note: I won't display the original image.
3:Now when user deletes the resized image,i need to delete the image loaded as bitmap i.e. the original image which i won't be displaying
For that I used bitmap.bitmapData.dispose() method.But,it doesn't free up the memory taken by the bitmap.For instance at initial state the memory usage is 58 Mb and upon loading 3 images the size increases to 87 Mb.And when I delete all the images the size decreases to 81 MB only.I feel the loaded bitmap is not completely removed.
View 9 Replies
Jan 29, 2012
When I'm disposing a sprite which has drawings on its graphics object, Do I need to use "graphics.clear()" or is "mySprite = null" is enough?
View 3 Replies
Oct 22, 2010
So, you have a sprite, you draw some graphics, you set cacheasbitmap=true... I can't seem to access the newly created bitmap data, to access the dispose() method.
[Code]...
View 6 Replies
Jun 25, 2009
It is known that a display Object removed from the display list will be garbage collected only if any event listener associated with it is removed.What I would like to know, but could not anywhere find an answer to, is that for a class that we create which extends, say Sprite, and uses and manipulates various other display elements within it, while removing an instance of this class from the display list is it sufficient to remove the event listeners associated with the instance of the class, or do we necessarily have to remove all internal event listeners of the class definition associated with the display objects that the class uses and manages.
View 1 Replies
Oct 16, 2010
[code]At the time when Camera.getCamera(1) is attached to vid1, is Camera.getCamera(0) destroyed internally or still in memory?
View 2 Replies