2016-10-13 00:16:48 点击量:5 标签: 收藏本文
关于AS3加载图片等外部资源,我常用的有两种方式:Loader和Embed,各自的特点,总结如下:
Embed:在Flash编译阶段就将资源嵌入,也就是说图片资源是会被编译进swf文件里面去的;这样子的好处是代码比较简洁,使用方便,也不存在加载顺序的问题,缺点是会增大swf文件的体积
Loader:在Flash运行阶段动态加载资源,这种方式不会影响swf文件的体积,而且可以很灵活地更改你要加载的资源,但是有可能会遇到路径变更或者跨域问题,同时,过多地使用Loader去动态加载无疑会加重服务器负担,因此需要和Embed权衡使用
书写的例子如下:
Embed:
- Embed:
- [Embed(source = "../assets/images/closeBtn.png")]
- private var closeBtnImage:Class //需要嵌入的图片对象
- private var btnSprite:Sprite = new Sprite();
- private function test():void {
- var bmp:Bitmap = new closeBtnImage();
- btnSprite.addChild(bmp);
- }
Loader:
- private function addItem():void {
- var loader:Loader = new Loader();
- loader.load(new URLRequest("player_img_path/20161202/jhyvshojjgm.png"));
- loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
- }
- //监听到Loader加载完毕以后执行的函数
- private function loadComplete(e:Event):void {
- var l:Loader=Loader(e.target.loader);//得到Loader对象
- var bm:Bitmap = Bitmap(l.content);//Loader里面的内容
- trace(l);
- trace(bm);
- }
我们是一家提供综合软件外包与弱电工程服务的技术公司。
业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。
公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室