AS3加载图片等外部资源

关于AS3加载图片等外部资源,常用的有两种方式:Loader和Embed,各自的特点,总结如下:

Embed:在Flash编译阶段就将资源嵌入,也就是说图片资源是会被编译进swf文件里面去的;这样子的好处是代码比较简洁,使用方便,也不存在加载顺序的问题,缺点是会增大swf文件的体积 Loader:在Flash运行阶段动态加载资源,这种方式不会影响swf文件的体积,而且可以很灵活地更改你要加载的资源,但是有可能会遇到路径变更或者跨域问题,同时,过多地使用Loader去动态加载无疑会加重服务器负担,因此需要和Embed权衡使用

书写的例子如下:
Embed:
[Embed(source = "../assets/images/closeBtn.png")]
privatevar closeBtnImage:Class//需要嵌入的图片对象
privatevar btnSprite:Sprite = newSprite();
privatefunctiontest():void{
var bmp:Bitmap = new closeBtnImage();
btnSprite.addChild(bmp);
}

Loader:
privatefunction addItem():void{
varloader:Loader = newLoader();
loader.load(newURLRequest("http://zhufei.de/something.png"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
}

//监听到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数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值