|
 
- 帖子
- 1677
- 积分
- 333
- 技术分
- 88
- 来自
- 重庆渝北
- 在线时间
- 620 小时
- 注册时间
- 2005-4-9
|
1#
发表于 2007-1-19 15:59
| 只看该作者
随意切割位图实验
原创: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); //如果画线状态为真,移动鼠标就画线
- }
- };
复制代码 |
|