ActionScript 3.0 :: Removing Images From Memory In A Loop
Aug 14, 2009
I've made a script which loads in, at intervals, images in a sequence (image1.jpg, image2.jpg ). However I've being doing my nut as to how to remove the preceeding image from memory as looking a the Windows Task Manager, each image gets added again and again, accumulating memory usage. I've tried removeChild, and null; stuff, but to no avail.I want it to go through the 10 images, and with each step to the next image, remove the last one from memory.[code]
View 2 Replies
Similar Posts:
Feb 18, 2009
The following for loop removes children from their parent if they're in the display list. It works correctly, but I also want to remove each child from memory with the same loop.
View 1 Replies
Mar 27, 2008
I'll try to explain the general operation of my program, and that might shed some light on my issue. I have a menu with 50 different small postcards. When one is chosen, the program zooms it up in order to fill the screen, populates some data which is unique to each postcard, and "flips" it so you can see the writing on the back. The postcard is a movieclip which imports a front image, 3 back images, and some XML text. There are some buttons on the "back" of the postcard to choose to look at a few images and text.When you choose to close the postcard, it flies away. I use the same movieclip for all 50 postcards, and just change the images and text that I load.
Once the postcard flies away, I want to remove it from memory. It won't happen with removeChild() as that keeps it there in case I want to reference it again I guess, and I have tried setting the postcard variable name to "null" without much success.I add listeners to the buttons on the postcard when I instantiate its class, so I am not sure if I have to remove them in order to get the garbage collector to deal with it. But, I also don't know what I don't know about removing things from memory. In one section of the Flash docs (Working with display object containers) it says:
"The removeChild() and removeChildAt() methods do not delete a display object instance entirely. They simply remove it from the child list of the container. The instance can still be referenced by another variable.(Use the delete operator to completely remove an object.)"And, at another place in the docs (the script reference about removeChild()) it says:
"Removes the specified child DisplayObject instance from the child list of the DisplayObjectContainer instance. The parent property of the removed child is set to null , and the object is garbage collected if no other references to the child exist. The index positions of any display objects above the child in the DisplayObjectContainer are decreased by 1.
View 6 Replies
Sep 29, 2011
I'm having a problem where I load my SWF (Advertisement) into the dom after an event happens in a flash game. After viewing the ad, the SWF is removed with JavaScript and users continues to play, this continues several times without ever reloading the page.
The problem I am running into is in IE 8 & 9 performance of the game drops and frame rate becomes choppy after several ads are shown. Each advertisment has a timer built in and my thought is that the ad is not being fully removed from memory hence causing a slowdown.
Is there a way to ensure a full removal of the ad or at least a way to detect within the ad that it is no longer on the page & kill the timer?
View 1 Replies
Jan 11, 2011
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".
View 9 Replies
Aug 5, 2011
I have this line
Code:
this.parent.removeChild(this);
So basicaly the object is removing it self from the parent object,but I still think that it exisits in memory and doing its backend job.How can I remove it completely from memory?
View 8 Replies
Apr 14, 2010
I am adding few items dynamically from the library to the stage by creating instances. If I remove them using removeChildAt() then the item gets removed from the display but exists in the memory. How can I remove this from memory?
View 2 Replies
Sep 17, 2010
I'm making a rather large flash project and so I'm concerned about memory usage. At the end of each section of the application I remove the overarching parent element that holds the content. Although this remove the parent, does this also free up the memory for each of the children contained within this, or should I run an iteration to remove those prior to removing the parent?
I'll give a little more explanation in-case I'm not expressing what I want:
addChild(movie1);
movie1.addChild(movie2);
movie1.addChild(movie3);
By using this code:
removeChild(movie1);
Does it remove movie2 and movie3 from memory or are they still stored, just unlinked?
View 3 Replies
Sep 29, 2009
its possible to remove something from the stage without removing it from the memory. Ie not using removieChild(); Reason being: I want to replace an image inside a movieclip rather than add another image on top or remove the image and movieclip entirely.
View 2 Replies
Dec 2, 2009
I'm performing the following operation many times (sniped of code below). I'm creating a two dimension array whose overall size depends on each iteration the process takes.
myArray = new Array(); // initialize the array
myArray[0] = new Array(); // add new array to first index
myArray[1] = new Array(); // add new array to second index
Question is: When I need to recreate this sequence again, do I just perform the same operation (repeat the same 3-lines)? Or is there a way of freeing up resource first.
View 3 Replies
Oct 15, 2009
I'm trying to make a Starfield program as practice for ActionScript 3. I'm using a timer event in the document class to create Star objects which are defined by an object class connected to the movieclip Star in the Library. The object class has a timer as well, and at each tick it repositions itself a few points away and scales up, creating the image of a star shooting towards the sides of the stage. When the star has gone past the boundaries of the stage or when it has scaled to a certain size, it removes itself from the display list with the command: this.parent. removeChild(this);This removes the star from the display list just fine, however after that I can't get the star to set itself to null so that it will be removed from memory, and I'd like some suggestions on how to do this properly. An idea I had was to make a function in the document class that the child objects can call, something like this.parent.KillMe(this) which would give itself as a reference to the function, which could then use a local variable reference to set the child to null, removing it from memory. This all seems terribly complex, so I'm sure there's another way.
I haven't noticed a memory leak or slowdown, however, so I'm curious if objects without references that are removed from the display list are automatically removed? That could be both good and bad, as the object might want to add itself to the display list again at a later time; not in this Starfield program, but perhaps in another I write.
View 11 Replies
Apr 22, 2009
I am having memory problems when adding & removing children. Here is a brief overview of what I'm doing:I'm ading children to a VBox component:the structure of the children is:
Code:
<mx:Canvas>
<mx:Image/>
<mx:Text/>
[code]....
All remove the children, BUT I am getting memory leaking, especially using the second method! If I don't add the TextField child to the UIComponent I don't seem to experience any memory problems!
View 2 Replies
Jan 21, 2011
I am having a bit trouble removing a movieclip properly from memory.In the onComplete event I use this to add the swf content to my clip
[code]....
The removeChild is double here just for savty But the trace command from the clip I loaded continues to put somthing in my output window. So it still keeps running and it isn't even stoping.
View 4 Replies
Jul 8, 2009
The app is basically an animated character that sits on screen and moves around doing stupid little animations. Each animation (Talking, Dancing, Jumping, etc) is an individual Movie Clip made up of around 50 or so PNGs in sequence. I'm using CS3 to create the clips, and exported them as SWCs for use in Flex. When I addChild() the MovieClip to stage, memory usage increases, which makes sense. However when I use removeChild() on the same clip, and then add another clip, memory increases, and this goes on with every new clip... essentially leaving 10 clips in memory even if they aren't being played.
Now, first thing you are going to think is I've got a reference to the clip somewhere and it's not garbage collecting. Well, I'm using weak listeners everywhere, and I'm pretty sure I've killed every reference by NULLing out the objects. I understand Garbage Collection doesn't happen right away... but it never seems to happen. As a test, I wrote a really bare-bones app to attach and remove a clip to see if the memory ever frees. I've left the app running for a half hour after removing the clip from stage, and memory usage stays the same:
[Code]...
View 2 Replies
May 31, 2010
Is this at all possible? I just finished re-building my entire portfolio site in AS3 because I can't change the frame rate for loaded content in AS2. Now I find out after completely rebuilding this thing that AS2 content gets stuck in Flash Player 9's memory and won't erase on Loader.unload. All my work from years back is in AS2.
View 0 Replies
Feb 15, 2011
There is a Flex app with 7 main views. And there is a memory issue when navigating between views.All these views were in a ViewStack, but due to some involving 3D objects I assumed it was too much to have it all in the display list. I'm now clearing all children from the stack and adding/removing them when needed. This gave a small performance increase, but still becomes unresponsive with use. The strange thing is, with this and the original method, the CPU climbs with use but eventually levels out somewhere. Now I'm creating new instances of each screen when they are navigated to and setting the previous variable to null. Now it looks like CPU is spiking when the view is created, but leveling out to something much much lower than it was. This felt like progress, but now the available memory keeps climbing where it wasn't before....
My understanding was calling remove child or remove all children would mark the object for deletion when the garbage collector next ran. I can't see any other references to the instance. My code is along the lines of [code]I have a function for each button to add a new instance like the above.The only thing I can see and feel silly asking but need confirmation, is each view extends a class called "Screen", this class contains a singleton reference to some core components.[code]Would this trick the garbage collector into thinking it was still needed? General advice on clearing Objects from the memory pool would awesome!!! I've never needed to analyze the Flash Player in such depth.I think it's an error with sound drivers, removing all sound and shes purring like a kitten. Works on my machine fine with windows XP, but not on the touch pad the application is crashing on with windows 7 (unsure of the drivers looking into them now) Now I'm thinking its not the drivers, tried 3 different versions, all with no improvement. I did discover the sound was fading in and out with the TweenLite lib. Doesn't look like there are any memory leaks in TweenLite as it works fine on other machines. Just the use of volumeEasingFunction seems to consume increasing amounts of CPU until it freaks out. It is crappy hardware running windows 7, which doesn't help.
View 1 Replies
Jan 31, 2011
I want to make this VERY SIMPLE image gallery, and i'm just using this code:
var i =new Loader();
i.load(new URLRequest("imagens/1.jpg"));
galeria.addChild(i)
I change images just with a button that tells to go to a different keyframe with a new code, like this:
i.load(new URLRequest("imagens/2.jpg"));
galeria.addChild(i)
i.load(new URLRequest("imagens/3.jpg"));
galeria.addChild(i)
The problem is... when I check the Task Manager the memory usage of the Flash player keeps going up and up without reducing everytime I click the "Next image" or "Previous Image" buttons. Even when loading the same image.I tryed many things to "unload" the image from the memory but none of them worked...
View 1 Replies
Jun 29, 2009
Loading images into Flex (size < 100kb) causes IE7 memory increase by a megabyte per image. What's going on here? Here is the code I have -- this for each image:
[Code]...
View 3 Replies
Jul 1, 2009
I am working on an application, using Flash CS3 + AIR, that involves some heavy content loading. I need to fetch some 140 gif files each around 400x400 in resolution and 50KB in size and display them in a TileList. The code that I am using is pretty standard stuff, (excerpts from the cellrenderer of my TileList):
[Code]...
View 2 Replies
Nov 7, 2006
I'm using the Flash 9 AS3 Public Alpha IDE. I'm loading a suite of 256 external png images using the Loader class. There are multiple "suites" of these images, but once the .swf starts and a couple of settings are loaded, only one of the suites actually needs to be loaded for that session. Only a small handful of these images are displayed at a time, but this handful changed rapidly. Images are quickly loaded, animated, unloaded, etc. Currently I'm using the Loader class to load the images whenever I need them and then I remove them from memory when I'm done. Because they are used so often, and without much forewarning before they become needed, this solution is no longer effective.
If I place all of these images in the Library and setup their linkage properties individually, everything works fast and efficient loading them with getDefinitionByName, but this is not practical to have to recompile my .swf file everytime the images change (not to mention setting up the linkage for 256 images is very tedious). The other complication is that multiple classes that are not directly connected with each other need access to these images, which means the images need to have some sort of global access (like they with getDefinitionByName). most effecient way to load all 256 images into memory and then give them global access to be *quickly* reproduced, duplicated, multiplied and animated by any class?
View 1 Replies
Dec 22, 2005
i couldn't find a tutorial on this matter so i sorta started making my own hypothesis... what i'm trying to do is: have a gallery of images automatically scrolling horizontally while having the set of images loop. like at[URL]..
here are a couple of my theories and questions for AS commands to have this work:
1) display a range of pixels of an image at certain positions, i.e. if gallery is scrolling to the left, leftmost image when its parts are disappearing out of the viewing area, they become visible at the right.
2) have two instances of each image and when an image is disappearing on left, the second instance of that image comes visible on the right. this I imagine would take up more HD space.
i guess what i was wondering more about is how jager did their gallery where there's only enough images are in a set to be viewed in the viewing area.
View 3 Replies
Jul 10, 2009
i am having a problem removing objects from the stage and their associated arrays. basically when a "shark" is added to stage i want all "cans" to be removed and i dont want any "cans" to be added until the shark has left.my problem comes as i dont want to keep using for loops as i already have two or three for "cans" alone and i heard thats not good for the code!
Code:
var canTimer:Timer=new Timer(2000);
canTimer.addEventListener(TimerEvent.TIMER, addCan);
canTimer.start();
[code]....
im not 100% sure were to put this in my code-i didnt really want to put it in a function of it's own as it would mean using another for loop?i get a output error when a shark is added like this:
Quote:
TypeError: Error #2007: Parameter child must be non-null.
at flash.display:isplayObjectContainer/contains()
at dolphinmoviegame_fla::MainTimeline/canHitTest()
even though all "cans" are removed.
View 1 Replies
Aug 8, 2011
I have been working on an Actionscript 2.0 project that basically loads external images.Everytime i load and unload a new image, memory increases to 1 or 2 MBsIf all the images are in cache, then it increased to 4 or 8 KBsIn the unloading of images, I have removed loader and the container of the image.
////////////btn_load.onRelease = function(){ loadImage();}btn_unLoad.onRelease = function(){ unLoadImage();}var mcListener:Object = new Object();var container1:MovieClip;var mcLoader:MovieClipLoader;var loader_reference = this;var n=0;function loadImage(){ var image_arr = ["http://xyz.com/image1.png","http://xyz.com/image2.png","http://xyz.com [code]...
View 1 Replies
Dec 9, 2009
I could pop, shift, splice or slice it out of there (hey, that had a nice ring to it...)
how to properly remove items from an array while in the middle of a for loop:
Code:
//This will cause errors, because if the condition is met, it will skip the next array in line
for (var i:int = 0; i < arr.length; i++)
[Code].....
If someone is reading through my code, will they understand what I am doing without me having to clarify with comments each time?
View 4 Replies
Jan 16, 2012
I have 20 buttons on my stage, and rather then have 'removeEventListener' for each button, i wanted to use a loop to do so. Heres what i have done.
Code:
//array containing the buttons instance names.
var soundArray:Array = new Array();
[code].....
View 14 Replies
Jun 25, 2010
is there a way to remove those buttons that are found when we right-click while the SWF file is running? those buttons such as 'play','loop',etc thx
View 2 Replies
Dec 8, 2011
I'm creating buttons like so:
for (k=0; k<5; k++) {
myLink = new LinkClass();
myLink.name = "link" + k;
box.boxMC.linksMC.addChild(myLink);
}
This creates 4 movieClips with the names "link0", "link1", etc. How do I remove them? I try this:
box.boxMC.linksMC.removeChild(myLink);
But it just removes the last one made (link3). How do I have all of them removed?
View 2 Replies
Jun 7, 2011
I've made a *.swf file of the sprite sequences of 1000 images with (780 x 480) size. After that I embed this with another one class to show but every time it crushes during run time because of insufficient memory (assume that I have 2GB memory space). Which is the best way to implement such big sprite sequences in AS3 by avoiding the memory problem?
View 3 Replies
Jun 11, 2010
i've made an array and assigned 40 images. then i added them randomly to the stage. now i don't know how i can remove them from the stage.
View 2 Replies
Oct 19, 2009
I have created this preloader which you can download from url..my problem is that when it finishes loading index.swf, it doesn't remove the four images.I am assuming that I need to do something with addChild/removeChild but I am not entirely sure what.
View 1 Replies