FLASH AS3如何用代码切分图片
1、这里我们用的是Animate CC,和FLASH cs6是一样的界面,最大的不同是没有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、运行效果如下,鼠标就可以拖动图块了,看到切分的结果。
