AS3.0编辑位图图像 位图的切分

来源:互联网 发布:八匹马网络加速器官网 编辑:程序博客网 时间:2024/06/01 09:10

为了构建拼图游戏,我们需要更近一步:深入位图数据,将位图切分成很多小块。

 

package {import flash.display.*;import flash.events.*;import flash.net.URLRequest;import flash.geom.*;public class BitmapExample extends MovieClip {public function BitmapExample() {loadBitmap("testimage.jpg");}// 从外部得到一张图像public function loadBitmap(bitmapFile:String) {var loader:Loader = new Loader();loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadingDone);var request:URLRequest = new URLRequest(bitmapFile);loader.load(request);}private function loadingDone(event:Event):void {// 得到导入的数据var image:Bitmap = Bitmap(event.target.loader.content);// 计算每个小块的宽度和高度var pieceWidth:Number = image.width/6;var pieceHeight:Number = image.height/4;// 遍历所有的小块for(var x:uint=0;x<6;x++) {for (var y:uint=0;y<4;y++) {// 创建新的小块var newPuzzlePieceBitmap:Bitmap = new Bitmap(new BitmapData(pieceWidth,pieceHeight));newPuzzlePieceBitmap.bitmapData.copyPixels(image.bitmapData,new Rectangle(x*pieceWidth,y*pieceHeight,pieceWidth,pieceHeight),new Point(0,0));//copyPixels函数有三个参数,复制的图像、复制的图像范围、目标图像的起始点// 创建新的sprite,把位图赋给它var newPuzzlePiece:Sprite = new Sprite();newPuzzlePiece.addChild(newPuzzlePieceBitmap);// 添加到舞台addChild(newPuzzlePiece);// 设置位置newPuzzlePiece.x = x*(pieceWidth+5)+20;newPuzzlePiece.y = y*(pieceHeight+5)+20;}}}}}


 

原创粉丝点击