[AS3]as3画笔实例实现橡皮擦功能源代码
[AS3]as3画笔实例实现橡皮擦功能源代码
[AS3]as3画笔实例实现橡皮擦功能源代码
- //主容器
- var main:Sprite = new Sprite();
- main.mouseEnabled = false;
- addChild(main)
- //临时容器(所有操作都将先画在临时容器里,再进行"画"或"擦")
- var mc:Sprite = new Sprite()
- main.addChild(mc)
- //保存最终画出来的内容的bitmapdata
- var content:BitmapData = new BitmapData(550,400,true,0x00FFFFFF);
- //把content显示出来
- var show:Bitmap = new Bitmap(content)
- main.addChildAt(show,0)
- //默认选中画笔
- var action:Number = 0
- txt.text = "当前选中:画笔"
- mc_move.addEventListener(MouseEvent.MOUSE_DOWN,startDraw)
- a.addEventListener(MouseEvent.CLICK,changeAction)
- b.addEventListener(MouseEvent.CLICK,changeAction)
- function changeAction(e:MouseEvent):void
- {
- if(e.target.name == "a")
- {
- action = 0
- txt.text = "当前选中:画笔"
- mc.visible = true
- }else
- {
- action = 1
- txt.text = "当前选中:橡皮"
- mc.visible = false
- }
- }
- function startDraw(e:MouseEvent):void
- {
- mc.graphics.lineStyle(20,cp.selectedColor);
- mc.graphics.moveTo(mouseX,mouseY);
- mc_move.addEventListener(MouseEvent.MOUSE_MOVE,drawing);
- stage.addEventListener(MouseEvent.MOUSE_UP,stopDraw);
- }
- function stopDraw(e:MouseEvent):void
- {
- if(action!=1)content.draw(mc,new Matrix(),new ColorTransform(),BlendMode.NORMAL,new Rectangle(0,0,550,400))
- mc.graphics.clear()
- mc_move.removeEventListener(MouseEvent.MOUSE_MOVE,drawing);
- stage.removeEventListener(MouseEvent.MOUSE_UP,stopDraw);
- }
- function drawing(e:MouseEvent):void
- {
- mc.graphics.lineTo(mouseX,mouseY)
- if(action==1)content.draw(mc,new Matrix(),new ColorTransform(),BlendMode.ERASE)
- e.updateAfterEvent()
- }
[AS3]as3画笔实例实现橡皮擦功能源代码
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...