动态加载并复制外部图片

<? xml version="1.0" encoding="utf-8" ?>
< mx:Application  xmlns:mx ="http://www.adobe.com/2006/mxml"  layout ="absolute"  creationComplete ="initApp()" >
    
< mx:Label  x ="20"  y ="10"  width ="173"  height ="32"  id ="tip_txt" />
    
< mx:Image  x ="20"  y ="50"  width ="83"  height ="110"  id ="img"  progress ="showProcess(event)"  complete ="initImg()" />
    
< mx:Script >
        
<![CDATA[
            import flash.events.ProgressEvent;
            import flash.display.Bitmap;
            import flash.display.BitmapData;
            import mx.controls.Image;
            internal function initApp():void{
                img.source="http://www.adobe.com/images/homepage/promos/60x45_flex.gif";
            }
            internal function initImg():void{
                tip_txt.text="图片加载完毕,开始复制";
                var bd:BitmapData=new BitmapData(img.contentWidth,img.contentHeight,true,0);  
                //当图片从外部加载时,要得到加载图片的长宽,必须使用Image控件的contentWidth和contentHeigt属性,而不是width和height属性
                //第三个参数表示是否透明,第四个参数表示是否填充颜色。
                //BitmapData对象负责操作像素数据,所有的像素方法都由它来完成。
                var matrix:Matrix=new Matrix(1,0.2,0.2,-1,0,img.contentHeight);
                //Matrix是一个3*3的矩阵,用来实现对位图的放缩,旋转,坐标转换等动作  
                //第一个参数:水平方向的缩放比例
                //第二个参数:水平方向的旋转角度
                //第三个参数:垂直方向的旋转角度
                //第四个参数:垂直方向的缩放比例
                //第五,六个参数:水平方向和垂直方向的偏移量。
                bd.draw(img,matrix);
                //draw(source:IBitmapDrawable,matrix:Matrix=null,colorTransform:ColorTransform=null,blendMode:String=null,clipRectangle=null,smoothing:Boolean=false)
                //source表示目标对象 
                //matrix是一个3*3的矩阵,用来实现对位图的放缩,旋转,坐标转换等动作  
                //colorTranform用来作色彩转换
                //blendMode表示使用混合模式,  
                //clipRect表示像素提取的范围,这是一个矩形,如果不设置,全部取出   
                //smoothing表示位图放缩时是否要平滑处理
                var ba:Bitmap=new Bitmap(bd);  //Bitmap对象代表一个由像素组成的图形.用在这的目的:为了使bd中的图形信息以图片的格式显示出来,
                var newImage:Image=new Image();
                newImage.source=ba;
                newImage.x=img.x+200;
                newImage.y=img.y;
                this.addChild(newImage);
            }
            internal function showProcess(event:ProgressEvent):void{
                var loaded:Number=event.bytesLoaded;
                var total:Number=event.bytesTotal;
                var p:Number=Math.floor(loaded/total*100);
                tip_txt.text="正在加载图片:"+p;
            }
        
]]>
    
</ mx:Script >
</ mx:Application >
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值