加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex加载图片的多种方法

发布时间:2020-12-15 04:21:07 所属栏目:百科 来源:网络整理
导读:1、最直接的,直接赋值图片地图。 多用于控制 img组件 img1.source="assets/11.gif"; 2、动态加载,多用于获取图片的data,然后进行处理。当然也可以显示到img组件里。 ??????????????????? //显示图像(!!要求bitmap对象必须事先加载完,另外必须用sprite作

1、最直接的,直接赋值图片地图。 多用于控制 img组件

img1.source="assets/11.gif";

2、动态加载,多用于获取图片的data,然后进行处理。当然也可以显示到img组件里。

??????????????????? //显示图像(!!要求bitmap对象必须事先加载完,另外必须用sprite作为容器,shape做容器不行)。

?? ??? ??? ??? ???? if(_bmpdata!=null)? //图片事先加载完毕再绘制图片。
?? ??? ??? ??? ??? ?{
?? ??? ??? ??? ??? ??? ?var s:Bitmap=new Bitmap(_bmpdata);? //img.bitmapData? _bmpdata
?? ??? ??? ??? ??? ??? ?var spr:Sprite=new Sprite();
?? ??? ??? ??? ??? ??? ?spr.addChild(s);
?? ??? ??? ??? ??? ??? ?spr.x=x;
?? ??? ??? ??? ??? ??? ?spr.y=y;
?? ??? ??? ??? ??? ??? ?this.addChild(spr);
?? ??? ??? ??? ??? ?}


?? ??? ????
?? ??? ?? ? private static var _bmpdata:BitmapData;
?? ??? ??? ?private static var loader:Loader;
?? ??? ??? ?private static var loaderUrl:String = "assets/1_24x24.png";
?? ??? ???? //!!加载图片是异步完成的,所以要画图像,要事先获取图像内容。获取成功之后才能进行画图。
?? ??? ??? ?private function loadpic():void
?? ??? ??? ?{
?? ??? ??? ??? ?if(_bmpdata==null)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?loader = new Loader();//加载图片
?? ??? ??? ??? ??? ?loader.load(new URLRequest("assets/2_24x24.png"));
?? ??? ??? ??? ??? ?loader.contentLoaderInfo.addEventListener(Event.COMPLETE,hadler_loadpic_complete);
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?private function hadler_loadpic_complete(event:Event):void
?? ??? ??? ?{
?? ??? ??? ??? ?var width:Number = loader.content.width;
?? ??? ??? ??? ?var height:Number = loader.content.height;
?? ??? ??? ??? ?_bmpdata=Bitmap(loader.content).bitmapData;?? ?
?? ??? ??? ??? ?img_p1.source=_bmpdata;? //直接赋bmpdata即可? 测试bmpdata是否有效果用。
?? ??? ??? ?}


??????????? //!!loader的content就是bitmap对象,而不是bitmapdata对象

?? ??? ???? var ss:Bitmap=imgloader.content as Bitmap;??
?? ??? ??? ?FlexGlobals.topLevelApplication.ofm_main.img2.source=ss;


3、不常用的。

[Embed(source="assets/bb.gif")]? //改变image图片声明。内置图片。
??????????? private var flag:Class;
//改变image的图片.内置图片。
??????????????? var asset:BitmapAsset = new flag() as BitmapAsset;
??????????????? img1.source = asset;


不过由于第2种方法要是加载大量图片,代码过大,此时第3种方法更简洁,动态使用bmpdata如下:

[Embed(source="/assets/1_24x24.png")] private staticvar _image:Class;

private static var _bmpdata:BitmapData;

......

?? ??? ??? ??? ???? _bmpdata=(new _image() as Bitmap).bitmapData;???????? //已验证,可以出图。 ?? ??? ??? ??? ??? ?if(_bmpdata!=null)? //图片事先加载完毕再绘制图片。 ?? ??? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ??? ?var s:Bitmap=new Bitmap(_bmpdata);? //img.bitmapData? _bmpdata ?? ??? ??? ??? ??? ??? ?var spr:Sprite=new Sprite(); ?? ??? ??? ??? ??? ??? ?spr.addChild(s); ?? ??? ??? ??? ??? ??? ?spr.x=x; ?? ??? ??? ??? ??? ??? ?spr.y=y; ?? ??? ??? ??? ??? ??? ?this.addChild(spr); ?? ??? ??? ??? ??? ?}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读