FLASH AS3如何用代码切分图片
1、这里我们用的是Animate CC,和FLASHcs6是一样的界面,最大的不同是没有as2版本的文档了。新建Actionscript3.0文档,然后保存好。
2、将找好的位图导入到舞台上。
3、将位置转换为影片剪辑,并设置实例名为image_mc
4、现在,在主时间轴加如下代码:var mcAry:Array=new Array();//存放切好的图块var line:int=4;//要切分的行数var row:int=5;//要切分的列数var cut_width:int=0;//图块的宽度var cut_height:int=0;//图块的高度var total_count:int=0;//切分的总数CreateMC();function CreateMC():void{ total_count=line*row;//获得切分总数 cut_width=int(image_mc.width/row);//获得图块宽度 cut_height=int(image_mc.height/line);//获得图块高度 var imageBMPD:BitmapData=new BitmapData(image_mc.width,image_mc.height); imageBMPD.draw(image_mc); for(var i:int=0;i<total_count;i++) { mcAry.push(new Sprite()); mcAry[i].x=(i%row)*cut_width; mcAry[i].y=int(i/row)*cut_height; var bmpd:BitmapData=new BitmapData(cut_width,cut_height); var rect:Rectangle = new Rectangle(cut_width*(i%row),int(i/row)*cut_height,cut_width,cut_height); var pt:Point = new Point(0,0); bmpd.copyPixels(imageBMPD, rect, pt); var bmp:Bitmap=new Bitmap(bmpd); mcAry[i].addChild(bmp); this.addChild(mcAry[i]); } image_mc.visible=false;}
5、运行后如下图所示
6、为了能看出切块效果,我尺攵跋赈们给这些图块加拖动功能,代码修改如下:var mcAry:Array=new Array();//存放切好的图块var line:int=4;//要切分的行数var row:int=5;//要切分的列数var cut_width:int=0;//图块的宽度var cut_height:int=0;//图块的高度var total_count:int=0;//切分的总数CreateMC();function CreateMC():void{ total_count=line*row;//获得切分总数 cut_width=int(image_mc.width/row);//获得图块宽度 cut_height=int(image_mc.height/line);//获得图块高度 var imageBMPD:BitmapData=new BitmapData(image_mc.width,image_mc.height); imageBMPD.draw(image_mc); for(var i:int=0;i<total_count;i++) { mcAry.push(new Sprite()); mcAry[i].x=(i%row)*cut_width; mcAry[i].y=int(i/row)*cut_height; var bmpd:BitmapData=new BitmapData(cut_width,cut_height); var rect:Rectangle = new Rectangle(cut_width*(i%row),int(i/row)*cut_height,cut_width,cut_height); var pt:Point = new Point(0,0); bmpd.copyPixels(imageBMPD, rect, pt); var bmp:Bitmap=new Bitmap(bmpd); mcAry[i].addChild(bmp); this.addChild(mcAry[i]); mcAry[i].addEventListener(MouseEvent.MOUSE_DOWN,StartDrag); mcAry[i].addEventListener(MouseEvent.MOUSE_UP,StopDrag); } image_mc.visible=false;}function StartDrag(e:MouseEvent):void{ var obj:Object=e.currentTarget; obj["parent"].setChildIndex(obj,obj["parent"].numChildren-1); obj.startDrag();}function StopDrag(e:MouseEvent):void{ var obj:Object=e.currentTarget; obj.stopDrag();}
7、运行效果如下,鼠标就可以拖动图块了,看到切分的结果。