ActionScript 3.0 :: Garbage Collector Question
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
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
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
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
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
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
Oct 18, 2010
I just noticed a strange behaviour while looking at my application in the Flash Profiler. When I click a button in my TitleWindow then the TitleWindow doesn't get garbage collected after it is removed. I have no idea why that is happening.[code]...
View 2 Replies
Nov 6, 2011
I understand that Objects not referenced by anything are garbage collected, and have been making sure to null out referenced to objects when I'm done with them. What I want to know are a few things:Do only Objects need to be null-referenced?How often does garbage collection usually run? Does it tend to run when processor demand is low? Is there a way I can tell garbage collection to run manually, such as when I'm done with a playing field full of sprites? This is not really needed if garbage collection tends to run when processor use is low, since it will run anyway at the times I'd like it to.Objects created just for the scope of an if or for statement etc, unless they are assigned a reference elseware, are eligible for garbage collection, right?
View 2 Replies
Feb 16, 2009
I have a question about garbage collection: I am using a MVC pattern for a photo gallery website.Every view displays a thumb viewer/controller and an image loader. Each view extends an abstract class that has a close() method that looks like this
PHP Code:
//AbstractViewer class
public function close():void {
[code].....
View 2 Replies
Sep 25, 2008
No matter what I do I cannot solve a tween AS3 Garbage Collection problem I am having that is wreaking havoc on my tween instances working correctly/consistently. Some Sprites never tween at all, some do but only part way. And it effects different ones almost each time.
I have read a fair amount recently on AS3 Garbage Collection and improperly referenced Tweens and other asynchronous instances getting picked up in mid process. I am experiencing the signature inconsistent behaviour that the I have read of.
I have tried using class level Static and non static properties to store references to my Tween instances so they will not be marked for GC. No luck. I have placed references to them in Class level Arrays, I have also used TweenMax's static to() Method that insures that it will shield it from GC and its alt. non Static
constructor instantiation, with persist:true. I also implemented another custom package; GCSafeTween(), other users said it does as it should, but it's not working in my case.
To test the GC problem, I edited the two eventListerners() in the Adobes' fl.transitions.Tween so that their default weakReference property was false. Doing this made the Tween work correctly. But that's a terrible solution.
View 23 Replies
Mar 31, 2012
A flash file loads a swf that has flash video using a loader request, which once loaded, wont unload and slows things unbearbley. I understand that once unloaded the flv will keep playing until Flash disposes of it.
View 2 Replies
Apr 20, 2010
I'm building a large flash site (AS3) that uses huge FLVs as transition videos from section to section. The FLVs are 1280x800 and are being scaled to 1680x1050 (much of which is not displayed to users with smaller screens), and are around 5-8 seconds apiece. I'm encoding the videos using On2's hi-def codec, VP6-S, and playback is pretty good with native FLV players, Perian-equipped Quicktime, and simple proof-of-concept FLV playback apps built in AS3.
The problem I'm having is that in the context of the actual site, playback isn't as smooth; the framerate isn't quite as good as it should be, and more problematically, there's occasional jerkiness and dropped frames (sometimes pausing the video for as long as a quarter of a second or so). My guess is that this is being caused by garbage collection in the Flash player, which happens nondeterministically and is therefore hard to test and control for.
I'm using a single instance of FLVPlayback to play the videos; I originally was using NetStream objects and so forth directly but switched to FLVPlayback for this reason. Has anyone experienced this sort of jerkiness with FLVPlayback (or more generally, with hi-def Flash video)? Am I right about GC being the culprit here, and if so, is there any way to prevent it during playback of these system-intensive transitions?
View 3 Replies
Dec 22, 2010
I put together a quick sample just to test out the garbage collection convenience functions in casalib.
All seems to work well (i.e, objects are removed from the stage, listeners are stopped) however I am using Mr. Doob's stats display and it looks like my memory usage isn't going down after the destroy method is called?
[Code]...
Are my items actually being marked for garbage collection? What am I doing incorrectly?
View 1 Replies
Sep 16, 2011
I'm working on a flash game that has developed an obvious memory leak. I do what I'm supposed to do with GC; remove all references to the object, nullify it, remove all listeners (or use weak listeners); but the leak is still present.
I've stumbled across this article: [URL].. It claims that objects that are too large will never be garbage collected. This theory fits well with my project since all of my game resides in a couple of huge MovieClips that are created and destroyed often.
Is there any merit to the claim that objects that are too large will never be garbage collected?
View 2 Replies
Oct 14, 2010
i want to know what types of objects should be removed for garbage collection? i m working on a bit long project. i've made it in flash application. i've 5 frames. each frame contains scripts. i've declared public variables as well as private and local. obviously assigned some eventlistener and so.. while moving from one frame to another, i want to remove unnecessary objects to garbage collection.whatever i understood, i nullified all the public variables and removed all the public eventlisteners (eventListeners which are in functions, I believe those can only be removed within that function). Objects (incl movieclips and all these) which were added dynamically, i removed them using removeChild() method..
View 5 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
Sep 15, 2009
I have an object that contains a timer. I do addEventListener on the timer and start the timer.At some point the object is deleted but I find that the timer keeps firing (using trace statements).What I don't get is, how come when I delete the only object that has a reference to that timer, the timer doesn't go away along with the event? Or do I have to do a removeEventListener() on the timer before removing the object for it to go away?
View 1 Replies
Mar 3, 2010
Code:
var a:MovieClip = new MovieClip();
var dict:Dictionary = new Dictionary(true);
[code].....
View 1 Replies
Jun 14, 2010
I've written a very simple swf loader/unloader that does not seem to remove from memory the loaded swf after it is no longer on the stage. There are several blog entries I've found regarding this, and none of their solutions have seemed to work. Adobe's Livedocs example of loading in an external swf and removing still has this issue as well. Perhaps I'm missing a simple step?Here's what I've got. Feel free to dump this code into your Flash app. All you need to do is make the 2 buttons (LOAD & UNLOAD) and the .SWF you want to load in as a test.
Code:
var url;
var urlRequest;
[code]....
View 6 Replies
Nov 8, 2010
I know that there have been questions asked about garbage collection and memory management and after hours of searching through the internet I frustratingly haven't been able to find a solution to my problem.So here it is:I have a function that reads an XML files and creates thumbnail instances of a class. The class contains the usual information as well as two listeners for MOUSE_OVER and MOUSE_OUT. The thumbnails are movieclips and are placed in a sprite container/holder. The container/holder is created with code:
Code:
var containerProjects:Sprite = new Sprite();//Creates sprite to contain projects
spriteGallery.addChild(containerProjects);//Adds container to main container
[code].....
View 2 Replies
May 16, 2011
I'm running Flash CS4 and compiling a project for Flash 10, at least for the time beingThe short of my question is this: do TextFields have a memory leak? I was trying to track down leaks in my code (my code is a morass of comments and virtually - no, scratch that, with the exception of the below, nothing is actually running) and couldn'tut notice that every time my placeholder visuals (squares with "Idle0", "Idle1" written on them in text fields) animated, I would lose memory like someone had jabbed a hole in my code! Even stop()-ed, the three text fields I have on/off screen seem to cost me a few kilobytes every few frames or so - depending on what I'm doing - compared to a sprite with poor mockups track this down.
View 6 Replies
Feb 3, 2012
there is a Class A, it has a timer which updates its x position periodically. So all the instance of Class A will update their own x position. There is another Class B which extends Class A and overrides the function which updates position to change y position and call the trace function.
Now what I do now is create two instance alpha1, alpha2 of Class A and other two instance beta1, beta2 of Class B.
- alpha1 is only instantiated, but not added to the stage.
- alpha2 is instantiated, and there after added to the stage.
- beta1 is only instantiated, but not added to the stage.
- beta2 is instantiated, and there after added to the stage.
- let say after few seconds, I remove alpha2 and beta2 from stage.
Now suppose the GC fires collection, who all would be collected ?
View 1 Replies
Jul 13, 2010
I'm struggling a bit to fully understand garbage collection. To be honest I don't understand why this just can't be taken care of automatically but hey - I'm not a programmer so what do I know... Now to my question - I have the following code:
Code:
var format:TextFormat = new TextFormat();
format.letterSpacing = -3.5;
huvud_txt.setTextFormat(format);
Is it enough to set format = null; to destroy the format object or is there some crossreference going on here so that I need to do something more? huvud_txt is a textfield on stage - it's not created with code...
View 2 Replies
Nov 24, 2010
I have some odd behavior while removing a MovieClip. I create a MovieClip (character) in an empty project on an empty stage (the movieclip is made up of several other clips for arms, legs etc.)[code]Then it keeps climbing for a while and then jumps back down to:126095360.Then it keeps climbing again -> jumping back -> climbing - jumping back. But each time it jumps back it has a little extra memory added. I can understand the first time memory increases after adding and removing the movieclip. Obviously the Garbage Collector needs some time before kicking in. However, why does it start to increase again and again?I noticed the memory usage instantly jumps back once I remove the MovieClip. However, It will still be increasing afterwards.
View 4 Replies