·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3画笔实例实现橡皮擦功能源代码

时间:2015-05-21 10:50酷播
[AS3]as3画笔实例实现橡皮擦功能源代码

[AS3]as3画笔实例实现橡皮擦功能源代码

  1. //主容器 
  2. var main:Sprite = new Sprite(); 
  3. main.mouseEnabled = false
  4. addChild(main) 
  5. //临时容器(所有操作都将先画在临时容器里,再进行"画"或"擦") 
  6. var mc:Sprite = new Sprite() 
  7. main.addChild(mc) 
  8. //保存最终画出来的内容的bitmapdata 
  9. 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.  
  19. mc_move.addEventListener(MouseEvent.MOUSE_DOWN,startDraw) 
  20. a.addEventListener(MouseEvent.CLICK,changeAction) 
  21. b.addEventListener(MouseEvent.CLICK,changeAction) 
  22. function changeAction(e:MouseEvent):void 
  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. function startDraw(e:MouseEvent):void 
  35.     mc.graphics.lineStyle(20,cp.selectedColor); 
  36.     mc.graphics.moveTo(mouseX,mouseY); 
  37.     mc_move.addEventListener(MouseEvent.MOUSE_MOVE,drawing); 
  38.     stage.addEventListener(MouseEvent.MOUSE_UP,stopDraw); 
  39. function stopDraw(e:MouseEvent):void 
  40.     if(action!=1)content.draw(mc,new Matrix(),new ColorTransform(),BlendMode.NORMAL,new Rectangle(0,0,550,400)) 
  41.     mc.graphics.clear() 
  42.     mc_move.removeEventListener(MouseEvent.MOUSE_MOVE,drawing); 
  43.     stage.removeEventListener(MouseEvent.MOUSE_UP,stopDraw); 
  44. function drawing(e:MouseEvent):void 
  45.     mc.graphics.lineTo(mouseX,mouseY) 
  46.     if(action==1)content.draw(mc,new Matrix(),new ColorTransform(),BlendMode.ERASE) 
  47.     e.updateAfterEvent() 

[AS3]as3画笔实例实现橡皮擦功能源代码

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器