<textarea cols="50" rows="15" name="code" class="java"> private function loadImage(url:String,movie:*):void { var loader:Loader=new Loader(); if (movie is flash.display.MovieClip || movie is flash.display.Sprite) { movie.addChild(loader); } else { throw new Error("类型不正确"); } loader.load(new URLRequest(url)); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,finish); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,onProgress); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioError); } private function loadImage2(url:String,movie:*):void { if (movie is flash.display.MovieClip || movie is flash.display.Sprite) { movie.addChild(loader2); } else { throw new Error("类型不正确"); } loader2.load(new URLRequest(url)); loader2.contentLoaderInfo.addEventListener(Event.COMPLETE,finish); loader2.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,onProgress); loader2.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioError); } private function finish(event:Event):void { trace("www"); } private function onProgress(event:ProgressEvent):void { //target.percent.text=Math.floor(event.bytesLoaded / event.bytesTotal * 100).toString(); } private function ioError(event:IOErrorEvent):void { trace("出错了"); }</textarea>
private var loader2:Loader=new Loader();
有时候,我们希望外部进行图片加载,并显示在我们的已经设计好的容器当中。有时候,可以结合到xml技巧来进行图片设计
当我们需要进行外部加载的时候,希望获取到图片来源并且装载到容器里面,这时候,可以通过上面代码的方式进行设计。
然而,flash+xml设计应用当中,对xml内容进行分页,上翻下翻都是一件常见的事情。
如果采用loadImage()第一种方式,则会每次在切换图片的时候,都会重新创建一个容器,这样会对内存进行消耗。
如果采用loadImage2()第二种方式,则会每次在切换图片的时候,只是会加载一张,但是对于多张图片的情况下,就突出部到作用,采用第一种方式会凑效的。
//这种是带路径和容器指定设计,这样就可以顺利将图片装入指定的容器里面了,但是问题是如果使用loadimage第一种方式加载,每次加载的时候,创建新的内存空间,图形还依然保留在内存当中。没有清理掉,也就是说每次都会创建新的容器。内存也会消耗
下面就是最近参考一些源文件重新写的东西:
里面的图片是外部进行加载。文字也是一样保留在xml里面去
遇到的问题:
在设计的期间,很不幸遇告诉自己采用unload方法,并不合适去关闭上一张的图片内容,每次希望搜素下一个节点的时候,出现一些bug。原先的图片依然保留在内存当中,并没有得到释放。这是采取上面的方图片出现的问题。