使用bitmapData简单实现涂鸦中的橡皮功能(as3)

之前有网站转载过blog里一篇
使用bitmapData简单实现涂鸦中的橡皮功能
由于里边没介绍..其实代码是as2的..后来一些网站误传为as3的代码..
今天把之前的代码改成了as3的代码..重新发上来..有需要的朋友可以看看...

PS:直接另存了以前的源码..所以代码还是写帧里...

01.//主容器
02.var main:Sprite = new Sprite();
03.main.mouseEnabled = false;
04.addChild(main)
05.//临时容器(所有操作都将先画在临时容器里,再进行"画"或"擦")
06.var mc:Sprite = new Sprite()
07.main.addChild(mc)
08.//保存最终画出来的内容的bitmapdata
09.var content:BitmapData = new BitmapData(550,400,true,0x00FFFFFF);
10.//把content显示出来
11.var show:Bitmap = new Bitmap(content)
12.main.addChildAt(show,0)
13.  
14.//默认选中画笔
15.var action:Number = 0
16.txt.text = "当前选中:画笔"
17.  
18.mc_move.addEventListener(MouseEvent.MOUSE_DOWN,startDraw)
19.a.addEventListener(MouseEvent.CLICK,changeAction)
20.b.addEventListener(MouseEvent.CLICK,changeAction)
21.function changeAction(e:MouseEvent):void
22.{
23.    if(e.target.name == "a")
24.    {
25.        action = 0
26.        txt.text = "当前选中:画笔"
27.        mc.visible = true
28.    }else
29.    {
30.        action = 1
31.        txt.text = "当前选中:橡皮"
32.        mc.visible = false
33.    }
34.}
35.function startDraw(e:MouseEvent):void
36.{
37.    mc.graphics.lineStyle(20,cp.selectedColor);
38.    mc.graphics.moveTo(mouseX,mouseY);
39.    mc_move.addEventListener(MouseEvent.MOUSE_MOVE,drawing);
40.    stage.addEventListener(MouseEvent.MOUSE_UP,stopDraw);
41.}
42.function stopDraw(e:MouseEvent):void
43.{
44.    if(action!=1)content.draw(mc,new Matrix(),new ColorTransform(),BlendMode.NORMAL,new Rectangle(0,0,550,400))
45.    mc.graphics.clear()
46.    mc_move.removeEventListener(MouseEvent.MOUSE_MOVE,drawing);
47.    stage.removeEventListener(MouseEvent.MOUSE_UP,stopDraw);
48.}
49.function drawing(e:MouseEvent):void
50.{
51.    mc.graphics.lineTo(mouseX,mouseY)
52.    if(action==1)content.draw(mc,new Matrix(),new ColorTransform(),BlendMode.ERASE)
53.    e.updateAfterEvent()
54.}
//原贴地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值