Actionscript 3 :: Remove Simple Objects From Memory?
Sep 9, 2010I'm trying to remove simple objects from memory, but when I call removeChildren memory usage rose :/ And I don't why ? And how can I remove objects ?
[Code]...
I'm trying to remove simple objects from memory, but when I call removeChildren memory usage rose :/ And I don't why ? And how can I remove objects ?
[Code]...
I have a class "Ball" which display graphical circle ball in random x&y axis and Ifade out it with Event.ENTER_FRAME and specify removeEventListener if it reach alpha<=0 .Now I made multiple object from "Ball" class. Now, In my stage it works nice but when I see my Computer Memory status. my current flash.exe is increasing memory rapidly. Is how to remove my unusual object from my Memory. So that it would not get hang.
View 2 RepliesI am creating a generic button that will remove items created dynamically in a movie clip container from memory (not just from the display list).
To track which item the user has selected for deletion, I have a click function that stores the name of the clicked object in a variable called objName. I then store a reference to the object itself in another variable called targetObj. I can then easily remove the object from the stage like this[code]...
I have an array of temporary objects created in a for loop. The objects are of type class "Tile", a class I created. However, it appears that whenever I create a lot of tiles in the for loop, the program slows down indefinitely.
While the array is whiped at a later trigger point, I am thinking that perhaps these Tile objects are not being erased from memory. They are being created on the fly in a for loop, and the array is being reset to "array = []".
Are the objects still in memory or are they cleaned up when the array is set to []?
It's caused by memory leak. Every time a slide is shown, the memory usage increases a few hundred kB. I've tried everything I could come up with, but even if I kick a whole lot of movieclips out, disable basically all AS3 and let only one slide loop, the memory usage still increases everytime the slide is shown again.Of course it helped to make the movieclips simpler, but the main problem remains: if you keep running the slideshow, it will slow down.
edit 1: #&^%@! Even when i copy one of the slides to a completely new file, with no external classes whatsoever, the problem remains. I think I know now what goes wrong:I make the movieclip loop by saying this.gotoAndPlay(1);Frame 1 is empty, the slide placed on frame 2. If I'd put the slide on frame 1, the mc wouldn't begin at the start and there is no animation (and no memory increase) because the mc has ended.I already figured that maybe every time the mc is shown again, Flash casts a new instance. To prevent that, everytime a slide ends, I remove it with removeChild(clip). That has no effect however, so I think that's unnecessary.
edit 2: even when the MCs are constantly on the stage and are restarted with clip.gotoAndPlay(1), the memory usage keeps growing.
My Problem: I simply want to load a swf in a swf and then unload it. When I do this it works and cleans out "some" memory but after I unload the swf the memory usage grows a little each time. Shouldn't I be able to have this so the memory hits a limit and doesn't keep growing forever?
What I tried: I put in System.gc() for debugging to force garbage clean up, and I am testing it in the debugger in the browser.There are 2 static images in the swf that is loaded and unloaded. I feel like those images are staying in memory maybe? I am assuming that the "unloadAndStop()" should handle that though.I put an enterframe listener which I remove along with the unload button.
My Code: The code is below, my files are larger than the upload limit here, but you can download all the files from this link: http:[url]....
Main swf to load into:
Code:
var _swfLoader:Loader;
var _swfContent:MovieClip;[code]............
I was using a trial edition of flash builder 4 professional and I figured before it ran out I would test the profiler. What shocked me was the number of objects that were left resident in memory. After seeing that I decided to set up a small test and had very bad luck. I was hoping someone can look at the following and tell me assumption i have that is just wrong.
[Code]....
I am building a website which loads some collada objects for each area. But I couldn't manage to clean the memory. It seems impossible to kill the objects.
I've found some samples implementing destroy() methods for away3d internal classes, but they're not working as well.
how o remove sound from the memory?I'm using an Object for this right now and I want to know if I am doing the right thing... or there's another alternative.[code]
View 2 RepliesI have a Calendar class (extends Sprite) that when called constructs a calendar. It does so by adding several Day (extends Sprite) objects to itself. I tested this class with a driver class, CalendarTest - the Document Class, that adds a Calendar object to
its stage. It worked great. Then I added a "Next" button to build a new Calendar for the next month. It didn't work so great.
After clicking Next button, the first calendar remained on stage. removeChild did not remove the first Calendar object. So, I wrote destroy methods within the Calendar and Day classes that remove their various components and clear graphics.
The Next button now works great, for the next calendar object. But the next, next calendar object, same problem as the first problem before implementing destroy methods.
I even put trace statements before removeChild calls and set the child to null after removeChild calls. It traces such and such Day is removed, set to null, and finally Calendar is removed, set to null. And yet, the second Calendar with all its Day objects remains on stage!So, how do I remove the Calendar from stage and memory?
I have a very simple movie clip in my library with a linkage id of view. with a bmp in it 2000x760.I have a text field to which i'm outputting System.totalMemory via EnterFrame event.and two buttons one to attach the view and the other to remove it. Everything works fine and I am doing everything i know how to clean up after myself as far as the linked view goes when removing it which isn't much just removeChild and setting the ref to it to null.Now the issue is that when i run the swf either in ide or stand alone i get a memory jump when the clip is attached which is fine and great but when i remove the clip memory never gets freed >< I know this has to do with a greater CS issue with gc and all that, but How can i get memory free up with i remove the clip?Lastly I am runing System.gc() when i remove the clip (this can't be the answer? / its not doing anything)
View 1 RepliesI am loading an SWF file into another parent SWF. I remove the loaded SWF using the unloadAndStop() method and set the loader to null. But the instance of the loaded SWF still remains there in the memory.
View 2 RepliesI have a .fla that contains five movieclips, and have a couple of questions regarding removing movieclips and swf size.If all the movieclips are displayed, my resulting swf is about 50k.If, in frame 1, I code conditionals that decide which of the movieclips will be displayed, will the resulting swf size become smaller if some of the clips aren't displayed?If so, what is the correct way to totally remove a movieclip from memory? Say I have a main movieclip that contains 5 other mcs, and the as code is within the main movieclip.If not, is there a way to make the swf size smaller if less than all clips are displayed (using conditionals).
View 10 RepliesI am getting problem of memory of having repeating object. Below is my code.
import flash.system.System;
var counter:Number=0;
var systemMemory:TextField=new TextField();
systemMemory.x=200;
stage.addEventListener(Event.ENTER_FRAME,showNext);
function showNext(event:Event){
[Code] .....
Above code does repeat textField Object continuously. Now I want to destroy previous created textField Object. So that my memory will not be hang. I got some where in the blog that with System.gc() could clear garbage collection. But currently I am not working with system.gc any more I want to clear previous object in programatically way. Is there any way that I could destroy previous created object?
I have read many many post and I don't find the answer of how to remove completely a swf load external.Every time I load and unload I see the windows memory task manager and see that the memory increase and don't reduce when remove child.
this is my code:
var oneLoader=new Loader();
bt1.addEventListener(MouseEvent.CLICK, swf1);
[code]......
can we know what "eat" the most of memory in a swf ? is it possible with monster debugger? (i've just downloaded it)
my project works fine, but if i re-launch the swf when it is already launched (cmd+enter -> the swf is launched, then cmd+enter), this seems to give me an example of how it would be if i was on a very very slow computer, and this is "very" slow.So is there any possiblity to know what i can remove to save the memory?i use several tweenlite, no sound, and i load all my pages (5) that contains a very basic content, at the beginning, so during the preloading...
I have as3 class like this
package {
import Global;
import flash.display.MovieClip;
import flash.events.*;
public class Alert extends MovieClip {
[Code] .....
I use function Close() to remove class itself but i noticed it doesn't frees memory. Is there any way to remove it completely and free used memory?
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 RepliesI've seen people explain how to remove a script created movieclip or shape from memory but what about when you link to a movieclip in the library?
Do you remove that from memory in the same way?
For example would the code below remove this clip from memory?
Code:
// I want this out of memory when the button is pushed.
var my_clip:my_clip_link = new my_clip_link();
addChild(my_clip);
[Code].....
When I test it, it does not show it out of memory on my computer but I read that the GC cleans up when it wants to, so I put in System.gc() to force GC, but I don't see any memory change in the debugger.
Also if I put a stream sound in the timeline of my linked movieclip it keeps playing the sound. If it's not in memory anymore how is it playing the sound? Did I open a portal to another dimension?
I've seen a lot about removing movie clips and I finally want to settle this. What is the proper way to remove a Movie Clip from memory? Right now what I'm doing is: Code: removeEventListener(Event.ENTER_FRAME, step); this.parent.removeChild(this); This is for an instance with 2 private variables and 2 methods (one of which is step). I saw some things about using something = null; and delete something; as well.
View 1 RepliesI have developed a touchscreen application that works perfectly fine except for the memory issue. Basically, the touchscreen app works kinda like a website with navgation on the side and content displaying next to it. I separeate each section into external swfs, and load each one up when it is needed, thinking it would reduce memory used on the pc. But unlike actionscript 2, AS 3 would not remove the external swfs from the memory. You can remove it from the stage and you won't see it, but the swf will still stay in the memory! So... as you navigate through the app, loading up all these external swf, even I do loader.unloadAndStop();, the swf is still there, and they just keep piling up in the memory as you navigate from the app. After leaving the touchscreen for a day or 2, having all these users naviage through it, all the external swfs will just completely consume all the resources and freeze the pc.
View 1 RepliesI have developed a touchscreen application that works perfectly fine except for the memory issue. Basically, the touchscreen app works kinda like a website with navgation on the side and content displaying next to it. I separeate each section into external swfs, and load each one up when it is needed, thinking it would reduce memory used on the pc. But unlike actionscript 2, AS 3 would not remove the external swfs from the memory. You can remove it from the stage and you won't see it, but the swf will still stay in the memory! So... as you navigate through the app, loading up all these external swf, even I do loader.unloadAndStop();, the swf is still there, and they just keep piling up in the memory as you navigate through the app. After leaving the touchscreen for a day or 2, having all these users naviage through it, all the external swfs will just completely consume all the resources and freeze the pc.Also, is it better to develop touchscreen application with actionscript 2 since it doesn't have this pressing memory issue?
View 1 RepliesI have a memory leak problem in papervision - I have a bunch of DAE models loading in Papervision. When I add them I can see the total memory usage for flash (in task manager) go up.
[Code]...
Is there a way to find out how much memory a single object is used?
View 3 Replies1: 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.
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.
I tried to include a free photogallery based on as 3 in to a free flash template site. Now, if u click photogallery, the photogallery have to build up!
I have following problem: -If u click the photogallery a second time, it doesnt work correctly! (I think it has something to do with the existing objects from the first call!.. The second thing is, it uploads the pictures for the gallery 2 times. So i have 40 picture instead of 20 (20 of 20 are the same :/)....
I tried this but with no succes: (i tried to remove the objects with remove child...Its the last part of this code)....
Code:
/*
Created by Min Thu
http://www.flashmo.com
AS3 References and Credits
[Code]....
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.
how do we remove object( sprite which has an external swf as it's child ) from display and more importantly from memory yet we still can use the same variable to add another object (yes another sprite like the one we removed yet has different content).., "
i did tried the removeChildAt thing it did remove all the child from the display list but i still can hear sound from video running.
here is small scale code of what i'm doing (sorry that i can only give you chunk code of loading and adding)
// var SWFList:XMLList; //used to hold a list of all external swf source,atribute and etc// var totalSWF:int; //hold the total number of external swf there is to be loaded
// var swfLoader:Loader; //instance of loader class used to load the external swf
[Code]....
Using ActionScript can I do with my game, which is running in a browser, verify that the user already has the files needed to run the game installed on your computer? If he had these files do not need anything else that was born and can play the game immediately. If he did not have the files, they would be loaded so that the browser does not erase these files. So when he returned to play the same game day after,as the files already on your computer, nothing need be loaded.How do I remove one of the main memory image that was loaded using the Loader class? I tried using the unload () method but nothing happened.
View 2 Replies