<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init2()"> <mx:Script> <![CDATA[ import mx.core.FlexBitmap; import mx.core.UIComponent; import mx.controls.Alert; private function init(){ Alert.show("hello") var bmap:BitmapData=new BitmapData(200,300,false,0x8458455); var bm:FlexBitmap=new FlexBitmap(bmap); var ui:UIComponent=new UIComponent; ui.addChild(bm) // this.addChild(ui); var bmap2:BitmapData=new BitmapData(200,300,false,0x5444444); var bm2:Bitmap=new Bitmap(bmap2); var ui2:UIComponent=new UIComponent; ui2.addChild(bm2); bm2.x=250; this.addChild(ui2); bmap.fillRect(new Rectangle(0,0,30,30),0x1562122);//填充指定rect的颜色 var rect:Rectangle=new Rectangle(20,20,50,50);//从原bmap的 x=20,y=20,width=50,width=50拷贝像素 var point:Point=new Point(0,20);//拷贝到目标点 bmap2的位置 bmap2.copyPixels(bmap,rect,point); } private function init2(){ var bit:Bitmap=new Bitmap; var bitdata:BitmapData=new BitmapData(200,300,false,0x77777777); bit.bitmapData=bitdata; var bit2:Bitmap=new Bitmap; var bitdata2:BitmapData=new BitmapData(200,300,false,0x00800000); bit2.bitmapData=bitdata2; Alert.show(bitdata.getPixel(10,10)+""); bit2.x=250; var ui1:UIComponent=new UIComponent; ui1.addChild(bit); var ui2:UIComponent=new UIComponent; ui2.addChild(bit2); this.addChild(ui1); this.addChild(ui2); var rect:Rectangle=new Rectangle(0,0,30,30);//原对象的范围 var point:Point=new Point(0,0); var threColor:uint=0x7829366; var color:uint=0x999999; var mask:uint=0x000000; Alert.show(((0x77777777&mask)==(mask&threColor))+""); //如果校验成功((0x77777777&mask)==(mask&threColor) 会把bitdata中指定的 rect区域复制到 bitdata2中 //复制的颜色值是指定的 color //如果校验失败((0x77777777&mask)!=(mask&threColor)并且最后一个值copysource=true; //那么会把bitdata2中指定rect区域的 bitdata的颜色值0x77777777,复制到bitdata2中 bitdata2.threshold(bitdata,rect,point,"==",threColor,color,mask,false); } ]]> </mx:Script> </mx:Application>