2016-10-13 00:16:48 点击量:34 标签: 收藏本文
[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画笔实例实现橡皮擦功能源代码
我们是一家提供综合软件外包与弱电工程服务的技术公司。
业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。
公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室