It will be faster to cache in the Player. Check out SuperImage on quietlyscheming.com
________________________________ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Steve Mathews Sent: Tuesday, January 29, 2008 7:59 AM To: [email protected] Subject: Re: [flexcoders] AS3: How to avoid loading the same asset repeatedly I believe most people just go ahead and load again because the file should be in the browser cache once it has been loaded. I would also be interested in the performance effects of each method. Steve On 1/29/08, ronnlixx <[EMAIL PROTECTED] <mailto:sam%40three60.com> > wrote: > Say i have 400 objects that contain the same loaded png, whats the > suggested way to avoid loading the same asset repeatedly? > > Here's what I did, don't know if it's nuts though. > To avoid loading the same png every time I made a singleton of the > PhotoFrame class and return a copy of the origional png as a bitmap. > It works, don't know the performace difference between using a new > Loader vs creating cloned bitmaps each iteration. > What is the suggested way to avoid loading the same asset multiple > times? > > > for (var i:int=0; i < 400; i++){ > new Photo(photoXML, PhotoFrame.getInstance().frame); > } > > public class PhotoFrame extends Sprite > { > private static var instance:PhotoFrame = null; > private var _loader:Loader = null; > > public function PhotoFrame(){ > _loader = new Loader(); > _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, > onFrameLoaded); > > _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, > onLoadError); > _loader.load( new URLRequest("frame.png") ); > } > > public static function getInstance():PhotoFrame{ > if(instance == null) instance = new PhotoFrame(); > return instance as PhotoFrame; > } > > public function get frame():Bitmap{ > var image:Bitmap = Bitmap(_loader.content); > return new Bitmap(image.bitmapData.clone()); > } > > private function onLoadError(e:IOErrorEvent):void{ > trace(e.text); > } > > private function onFrameLoaded(e:Event):void{ > trace('loaded'); > } > } > > > public class Photo extends EventDispatcher > { > private var _frame:PhotoFrame; > > public function Photo(photoXML:XML, frame:PhotoFrame){ > _frame = frame; > addChild(_frame); > //... > } > > } > > > > > > -- > Flexcoders Mailing List > FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt <http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt> > Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com <http://www.mail-archive.com/flexcoders%40yahoogroups.com> > Yahoo! Groups Links > > > >

