package { import flash.display.BitmapData; import flash.display.Shape; import flash.geom.Point; import flash.geom.Rectangle; public class UiUtil { public function UiUtil() { } public static function leftToRightMathBitmapData(bmdLeft:BitmapData,bmdRight:BitmapData,width:int):BitmapData{ var shape:Shape = leftToRightMathShape(bmdLeft,bmdRight,width); //返回目标 var dest:BitmapData = new BitmapData(width,bmdLeft.height,true,null); dest.draw(shape); return dest; } public static function leftToRightMathShape(bmdLeft:BitmapData,bmdRight:BitmapData,width:int):Shape{ var sp:Shape = new Shape(); //填充左边 sp.graphics.beginBitmapFill(bmdLeft,null,false); sp.graphics.drawRect(0,0,width-bmdRight.width,bmdLeft.height); //填充右边(左边为空) var newRight:BitmapData = new BitmapData(width,bmdRight.height,true); newRight.copyPixels(bmdRight,new Rectangle(0,0,width,bmdRight.height),new Point(width-bmdRight.width,0)); sp.graphics.beginBitmapFill(newRight,null,false); sp.graphics.drawRect(width-bmdRight.width,0,width,bmdRight.height); sp.graphics.endFill(); return sp; } public static function topToBottomMathShape(bmdTop:BitmapData,bmdBottom:BitmapData,height:int):Shape{ var sp:Shape = new Shape(); //填充上边 sp.graphics.beginBitmapFill(bmdTop,null,false); sp.graphics.drawRect(0,0,bmdTop.width,height-bmdBottom.height); //填充下边 var newBottom:BitmapData = new BitmapData(bmdBottom.width,height,true); newBottom.copyPixels(bmdBottom,new Rectangle(0,0,bmdBottom.width,height),new Point(0,height-bmdBottom.height)); sp.graphics.beginBitmapFill(newBottom,null,false); sp.graphics.drawRect(0,height-bmdBottom.height,bmdBottom.width,bmdBottom.height); sp.graphics.endFill(); return sp; } public static function topToBottomMathBitmapData(bmdTop:BitmapData,bmdBottom:BitmapData,height:int):BitmapData{ var shpae:Shape =topToBottomMathShape(bmdTop,bmdBottom,height); //返回目标 var dest:BitmapData = new BitmapData(bmdTop.width,height,true,null); dest.draw(shpae); return dest; } public static function arrondMathShape(bmdLeft:BitmapData,bmdRight:BitmapData,bmdLeftbottom:BitmapData,bmdRightbottom:BitmapData,width:int,height:int):Shape{ return topToBottomMathShape(leftToRightMathBitmapData(bmdLeft,bmdRight,width),leftToRightMathBitmapData(bmdLeftbottom,bmdRightbottom,width),height); } public static function arrondMathBitMapData(bmdLeft:BitmapData,bmdRight:BitmapData,bmdLeftbottom:BitmapData,bmdRightbottom:BitmapData,width:int,height:int):BitmapData{ //返回目标 var dest:BitmapData = new BitmapData(width,height,true,null); dest.draw(arrondMathShape(bmdLeft,bmdRight,bmdLeftbottom,bmdRightbottom,width,height)); return dest; } } }