制作神奇的互动橡皮刷实例

资讯 驱动中国 若水 2,853 次阅读 0 条评论
分享 Q

以前用Flash做橡皮刷的时候通常都是通过绘制底图实现的,最近在发现其实还有一种更好的实现方法就是用bitmapdata的alpha通道。

只要在一张图片上用draw画一个透明度为零的图片,就可以实现在draw的区域图片透明了。

完成效果如下:

点击选择右边的橡皮刷或者画笔图标,再用鼠标在画面上拖动,看看会出现什么情况?

AS代码如下:

//导入所需要的类
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
//初始点(0,0)
var base_point:Point = new Point(0, 0);
//初始区域(0,0,25,25)
var base_rectangle:Rectangle = new Rectangle(0, 0, 25, 25);
//导入库中图片
var bit1:BitmapData = BitmapData.loadBitmap("img1");
//定义org_bit:BitmapData用于恢复图片
var org_bit:BitmapData = new BitmapData(mc._width, bit1.height, true, 0);
org_bit.draw(bit1);
//draw_bit拷贝org_bit用于涂鸦操作
var draw_bit:BitmapData = org_bit.clone();
//导入到舞台中
_root.createEmptyMovieClip("draw_mc", 1);
draw_mc.attachBitmap(draw_bit, 1);
//定义橡皮刷erase_bit和笔刷redraw_bit argb为0(透明)
var erase_bit:BitmapData = new BitmapData(mc1._width, mc1._height, true, 0);
var redraw_bit:BitmapData = erase_bit.clone();
//橡皮刷erase_bit填充为白色,这里注意a必须不为0 rbg为FFFFFF
erase_bit.fillRect(erase_bit.rectangle, 0xFFFFFFFF);
//定义橡皮刷erase_bit和笔刷redraw_bit形状 注意mc1必须为黑色 你也可以尝

版权声明:本文由驱动中国整理发布,转载需注明出处与原文链接。如有疑问请联系 editor@qudong.com
本文价值 成为第一个评分的人
登录后为本文打分
网友评论0 条评论
正在回复 的评论取消
评论加载中…
🔐

登录后参与互动

评论、点赞均可赚积分
连续签到、邀请好友也有奖励 🎁

电脑端: 微信扫码登录 微信内: 一键登录

微信扫一扫

打开微信「扫一扫」,分享本文到朋友圈或好友