在flash中随意切割位图
?原创:ybzjllj 。
效果:用鼠标随意画一个形状,拖动此形状,就从原图上切出绘图区域的图来。
注意:非遮罩,感觉比就遮罩简单。
使用了:AS绘图、位图对象、位图填充。
import?flash.display.BitmapData;
import?flash.geom.Matrix;
//导入一张图片,放在舞台上,转为MC,实例名为“原图”
//“mc”是用来在里面绘图的
var?原图:MovieClip,?mc:MovieClip;
var?画线?=?false;//画线标志
var?bmpImage:BitmapData=new?BitmapData(原图._width,原图._height);//创建位图对象
bmpImage.draw(原图,new?Matrix());//用“原图”描绘位图对象
//当鼠标按下时
原图.onPress?=?function()?{
if?(mc.hitTest(_xmouse,?_ymouse,?true))?{
??mc.startDrag();??//如果鼠标在mc上,就开始拖动它???
}?else?{
??//按下鼠标时,鼠标不在复制的MC上,启动画线
??画线?=?true;
??mc?=?this.createEmptyMovieClip("mc",?1);//创建空MC,此操作会同时删除原来绘的图,如果不想删除原来的,就改用数组。
??mc.lineStyle(1,?0xFF0000);??//线条样式
??mc.beginBitmapFill(bmpImage,new?Matrix(),false);???//标识位图填充开始
??mc.moveTo(_xmouse-this._x,?_ymouse-this._y);?//移动画线起点到此
}
};
原图.onMouseUp?=?function()?{
if?(画线)?{
??画线?=?false;
??mc.endFill();?//填充结束
}?else?{
??mc.stopDrag();
}
};
原图.onMouseMove?=?function()?{
if?(画线)?{
??mc.lineTo(_xmouse-this._x,?_ymouse-this._y);?//如果画线状态为真,移动鼠标就画线??
}
};
附件
:
AS绘图test.fla

附件
:
AS绘图test.swf
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/1188.html