[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. 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. }

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

[AS3]as3画笔实例实现橡皮擦功能源代码的更多相关文章

  1. [AS3]as3用ByteArray来对SWF文件编码加密实例参考

    [AS3]as3用ByteArray来对SWF文件编码加密实例参考,简单来说,就是将 swf 以 binary 的方式读入,并对 ByteArray 做些改变,再重新存成 swf 档.这个作业当然也可 ...

  2. as3.0橡皮擦功能

    //主容器 var main:Sprite = new Sprite(); main.mouseEnabled = false; addChild(main) //临时容器(所有操作都将先画在临时容器 ...

  3. [AS3]as3与JS的交互(AS3调用JS)实例说明

    一,AS3 vs JavaScript (1)AS3调用JS 函数: ExternalInterface.(functionName:, arguments): //AS3 Code 属性: 同上,通 ...

  4. [ActionScript] AS3 涂鸦的擦除和撤销功能

    package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BlendMo ...

  5. Spring+EhCache缓存实例(具体解说+源代码下载)

    一.ehcahe的介绍 EhCache 是一个纯Java的进程内缓存框架,具有高速.精干等特点,是Hibernate中默认的CacheProvider.Ehcache是一种广泛使用的开源Java分布式 ...

  6. WP8下实现刮刮乐(橡皮擦)功能

    说到刮刮乐这个功能,我们最先想到的是上下两张(长方形)重叠,之后对上面这张图片进行操作. 我的想法是:通过手势,让手指划过的地方变成透明的,底部就会显示了. 那如何让图片变为透明呢?这就要对图片的像素 ...

  7. rabbit mq的一个实例,异步功能

    简单的使用场景:消息队列的场景有:解耦,异步,削峰. 此例用的场景,异步 有时候会有请求消耗时间过长,不能老让用户等待返回结果,可以用消息队列来做异步实现,之前用过workmain等类似的异步,但不如 ...

  8. 功能源代码(扇形进度)及Delegate运用在开放事件中、UINavigationController的封装

    1:扇形进度视图及运用 首先先创建扇形的视图,传入进度值 #import <UIKit/UIKit.h> @interface LHProgressView : UIView @prope ...

  9. cocos2d-x 3.x 橡皮擦功能

    1.HelloWorldScene.h cocos2d::DrawNode* _eraser; cocos2d::RenderTexture*_renderTexture; 2.HelloWorldS ...

随机推荐

  1. 建工发债sql

    管理费用 为了得到科目名称,只好再从外面写一层 select a.*, (select b.subjname from bd_accsubj b where b.subjcode=a.scode an ...

  2. 黄聪:CamtasiaStudio如何导出视频上传优酷实现高清

  3. 实践最简单的项目:WC

    wc.exe是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有的wc.exe的功能,并加以扩充,给出某程序设计源语言文件的字符数.单词数和行数. 给实现一 ...

  4. Gson--Gson解析=等号出现乱码?

    GSON使用笔记(1) -- 序列化时排除字段的几种方式 --3,关于Gson解析时候特殊符号,被转义的问题,如'单引号? //Creating the JSON object, and gettin ...

  5. 小结一下: web中的人民币

    在编辑器中 shift+4  以为得到的是 两杠人民币符号(¥)---->但是.....在ie6,7,8下怎么不是呀? 对比一下下图: 下面那个是ok的哈: 要用时可以复制一下:     ¥ 完 ...

  6. 慕课网-Java入门第一季-6-10 练习题

    来源:http://www.imooc.com/ceping/1596 以下关于二维数组的定义和访问正确的是() A int[ ][ ] num = new int[ ][ ]; B int[ ][ ...

  7. urlparse

    urlparse模块 urlparse主要是URL的分解和拼接,分析出URL中的各项参数,可以被其他的URL使用,而且只在python2.7中存在,python3中是在urllib包下的urllib. ...

  8. Nodejs创建客户端

    Node 创建 Web 客户端需要引入 http 模块,创建 client.js 文件,代码如下所示: var http = require('http'); //用于请求的选项 var option ...

  9. linux错误码

    1.通过代码输出错误码以及其代表的含义  具体可以参考errno和os模块 errno.errorcode os.strerror(n) # -*- coding:utf8 -*- import os ...

  10. NOIP2016参赛总结

    NOIP2016复赛参赛总结 noip2016终于结束了,对于这次的比赛我只想说,死得好惨.(画风突变) 赛前趁着期中考浪到常州去培训,一天两套模拟的训练真的是心力交瘁(好吧没这么严重),不过那些模拟 ...