Hi,
I think if you use it locally, you still have to "dispose" of it:
http://www.bartclaessens.com/tag/memory-management/
http://labs.bigspaceship.com/2007/02/28/flash-performance-tips-part-ii/
http://www.gskinner.com/blog/archives/2006/06/as3_resource_ma.html
Search for "dispose" in some of these - also, one of the comments in
Grant's article mentions testing in the IDE vs testing in the browser
gives different results for loaded images.
HTH
Glen
Sander Schuurman wrote:
That's a local variable right? Doesn't it happen automatic?
I must concentrate on the _large Sprite, isn't it?
-----Original Message-----
From: flashcoders-boun...@chattyfig.figleaf.com
[mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of Glen Pike
Sent: Wednesday, 21 January 2009 12:20
To: Flash Coders List
Subject: Re: [Flashcoders] Garbage Collection difficulty
Hi,
Do you have to destroy the Bitmap you create in the largeLoaded
function???
Glen
Sander Schuurman wrote:
Hi cool list,
I'm struggling with my Image class. It's supposed to load and unload different
sized images dynamicly; but I can't seem to get it to work properly. The
loading works fine, but the unloading not for the full 100%. It visually
unloads the image, but it remains in the memory. I have tried several different
things; I'm a bit stuck now.
Here is a stripped class:
public class Image extends MovieClip
{
...
private var _largeLoader:Loader;
private var _large:Sprite;
...
public function Image( thumbUrl :String,
normalUrl :String,
largeUrl :String )
{
_tu = thumbUrl;
_nu = normalUrl;
_lu = largeUrl;
}
...
public function loadLarge() :void
{
_largeLoader = new Loader();
_largeLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, largeLoaded,
false, 0, true);
_largeLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,
errorOccured, false, 0, true);
_largeLoader.load(new URLRequest(_lu));
}
private function largeLoaded( e :Event ) :void
{
var b:Bitmap = Bitmap(largeLoader.content);
_largeLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, largeLoaded);
_largeLoader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR,
errorOccured);
_largeLoader = null;
_large = new Sprite();
_large.addChild(b);
addChild(_large);
dispatchEvent(new Event(Image.IMG_LOADED));
}
...
public function clear( full :Boolean = false ) :void
{
// clear normal img and large img
... ?
// tried things like:
//_normal.removeChildAt(0);
//_normal = null;
//removeChild(_normal);
//_large.removeChildAt(0);
//_large = null;
//removeChild(_large);
//delete(_normal.removeChildAt(0));
//delete(_large.removeChildAt(0));
// removes the images visually, but they won't get GC'ed
if (full)
{
// clear thumb and itself
}
}
}
Thanks in advance!
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
--
Glen Pike
01326 218440
www.glenpike.co.uk <http://www.glenpike.co.uk>
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders