【游客模式】——注册会员,加入11RIA 闪客社区吧!一起见证Flash的再次辉煌……
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
关于 AS3 加载图片等外部资源,常用的有两种方式:Loader 和 Embed,各自的特点,总结如下:
Embed:在 Flash 编译阶段就将资源嵌入,也就是说图片资源是会被编译进 swf 文件里面去的;这样子的好处是代码比较简洁,使用方便,也不存在加载顺序的问题,缺点是会增大 swf 文件的体积 Loader:在 Flash 运行阶段动态加载资源,这种方式不会影响 swf 文件的体积,而且可以很灵活地更改你要加载的资源,但是有可能会遇到路径变更或者跨域问题,同时,过多地使用 Loader 去动态加载无疑会加重服务器负担,因此需要和 Embed 权衡使用
书写的例子如下:
Embed:
[Actionscript3] 纯文本查看 复制代码 [Embed(source = "../assets/images/closeBtn.png")]
privatevar closeBtnImage:Class//需要嵌入的图片对象
privatevar btnSprite:Sprite = newSprite();
privatefunctiontest():void{
var bmp:Bitmap = new closeBtnImage();
btnSprite.addChild(bmp);
}
Loader:
[Actionscript3] 纯文本查看 复制代码 privatefunction addItem():void{
varloader:Loader = newLoader();
loader.load(newURLRequest("http://zhufei.de/something.png"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
}
[Actionscript3] 纯文本查看 复制代码 //监听到Loader加载完毕以后执行的函数
privatefunction loadComplete(e:Event):void{
var l:Loader=Loader(e.target.loader);//得到Loader对象
var bm:Bitmap = Bitmap(l.content);//Loader里面的内容
trace(l);
trace(bm);
}
位图占内存大的处理方法:
通过URLLoader指定BINARY方式读取图片文件,其data属性就是JPG或者其它压缩格式的ByteArray数据。保存图片ByteArray数据到内存。再通过loader.loadBytes来加载ByteArray数据。 |