[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. java 泛型编程学习

    先发布,以后有空再修改... 第一次看到<java核心技术卷一>中关于泛型这部分的时候感觉很复杂,似乎有说不完的约束条件,让人难以理解.当时只是囫囵吞枣般过了一遍,也没有看出个什么来.现在 ...

  2. html_博客博主

    csdn: 工匠若水 http://blog.csdn.net/yanbober yunama: IT蓝豹:http://www.itlanbao.com/: http://ask.dcloud.ne ...

  3. Caffe使用:如何将一维数据或其他非图像数据转换成lmdb

    caffe事儿真多,数据必须得lmdb或者leveldb什么的才行,如果数据是图片的话,那用caffe自带的convert_image.cpp就行,但如果不是图片,就得自己写程序了.我也不是计算机专业 ...

  4. mybatis处理一对多的查询

    //查询出某个班级对应的所有老师和学生 1.使用嵌套结果 <select id="findClasses3" parameterType="int" re ...

  5. 【摘】Mysql备份还原数据库之mysqldump实例及参数详细说明

    原文http://www.cnblogs.com/xuejie/archive/2013/01/11/2856911.html   我们在运营项目的过程中肯定会遇到备份数据库,还原数据库的情况,我们一 ...

  6. mysql常用单行函数

    一.大小写控制函数 LOWER(str)    将str的值全部置为小写字母 select LOWER('ABC'); --结果: LOWER('ABC') abc UPPER(str)    将st ...

  7. virtualbox桥接网络配置--CentOS

    系统安装好后如下图设置virtualbox虚拟机的网络连接方式 然后启动虚拟机 ifconfig发现如下图 vi /etc/sysconfig/network-scripts/ifcfg-eth0 根 ...

  8. 规则引擎集成接口(四)SQL执行语句

    SQL执行语句 右键点击数据库连接文件“hr”—“添加SQL执行语句”,如下图: 弹出窗体,如下图: 将显示名称改为“部门名称”,返回至类型设置为“string”,在编写sql语句,如下图: 点击确定 ...

  9. IaaS, PaaS, SaaS 解释

    IaaS.PaaS.SaaS作为云计算三种服务模式,下面会着重介绍他们的定义.作用.功能.对应产品以及他们之间的关系等. 一.定义:     SaaS:Software as a Service,软件 ...

  10. canvas文本自动换行

    在用canvas中写刮奖结果的时候发现canvas中的文本不会自动折行,要进行截断另起一行来写.在此参考文章html5-canvas的绘制文本自动换行来做改写. 根据canvas宽度来做折行 在此根据 ...