[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画笔实例实现橡皮擦功能源代码
[AS3]as3画笔实例实现橡皮擦功能源代码的更多相关文章
- [AS3]as3用ByteArray来对SWF文件编码加密实例参考
[AS3]as3用ByteArray来对SWF文件编码加密实例参考,简单来说,就是将 swf 以 binary 的方式读入,并对 ByteArray 做些改变,再重新存成 swf 档.这个作业当然也可 ...
- as3.0橡皮擦功能
//主容器 var main:Sprite = new Sprite(); main.mouseEnabled = false; addChild(main) //临时容器(所有操作都将先画在临时容器 ...
- [AS3]as3与JS的交互(AS3调用JS)实例说明
一,AS3 vs JavaScript (1)AS3调用JS 函数: ExternalInterface.(functionName:, arguments): //AS3 Code 属性: 同上,通 ...
- [ActionScript] AS3 涂鸦的擦除和撤销功能
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BlendMo ...
- Spring+EhCache缓存实例(具体解说+源代码下载)
一.ehcahe的介绍 EhCache 是一个纯Java的进程内缓存框架,具有高速.精干等特点,是Hibernate中默认的CacheProvider.Ehcache是一种广泛使用的开源Java分布式 ...
- WP8下实现刮刮乐(橡皮擦)功能
说到刮刮乐这个功能,我们最先想到的是上下两张(长方形)重叠,之后对上面这张图片进行操作. 我的想法是:通过手势,让手指划过的地方变成透明的,底部就会显示了. 那如何让图片变为透明呢?这就要对图片的像素 ...
- rabbit mq的一个实例,异步功能
简单的使用场景:消息队列的场景有:解耦,异步,削峰. 此例用的场景,异步 有时候会有请求消耗时间过长,不能老让用户等待返回结果,可以用消息队列来做异步实现,之前用过workmain等类似的异步,但不如 ...
- 功能源代码(扇形进度)及Delegate运用在开放事件中、UINavigationController的封装
1:扇形进度视图及运用 首先先创建扇形的视图,传入进度值 #import <UIKit/UIKit.h> @interface LHProgressView : UIView @prope ...
- cocos2d-x 3.x 橡皮擦功能
1.HelloWorldScene.h cocos2d::DrawNode* _eraser; cocos2d::RenderTexture*_renderTexture; 2.HelloWorldS ...
随机推荐
- 如何使用Chrome Timeline 工具(译)
[原文地址]https://developers.google.com/web/tools/chrome-devtools/profile/evaluate-performance/timeline- ...
- 无索引状态下比较DataTable的几种过滤方法效率
先构造一个DataTable: public DataTable GetDataTable() { DataTable dtTmp = new DataTable(); dtTmp.Columns.A ...
- MVC3升级为MVC4
在程序包管理控制台输入 Install-Package UpgradeMvc3ToMvc4 等待 升级完成
- 关于delegate(代理)总结
stackoverflow 上讲解:http://stackoverflow.com/a/12660523/4563358 delegate是将需要处理交给自己的代理. 在自己的对应的类中.h文件中 ...
- mysql-5.7.13-win32 安装
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- linux中终端控制键Ctrl+C,Ctrl+Z,Ctrl+D的使用场合
1.Ctrl+C比较暴力,就是发送Terminal到当前的程序,比如你正在运行一个查找功能,文件正在查找中,Ctrl+C就会强制结束当前的这个进程.2.Ctrl+Z是把当前的程序挂起,暂停执行这个程序 ...
- php三维数组去重
假设叫数组 $my_array; // 新建一个空的数组. $tmp_array = array(); $new_array = array(); // 1. 循环出所有的行. ( $val 就是某个 ...
- dubbo入门示例
前提准备: 在本次实验之前,需要准备一下几个包: Spring中的aop.beans.context.core.expression以及struts中的commons-logging.javassis ...
- <-0基础学python.第2课->
今天闲着无聊,有想鼓捣Python了,想实现网络爬虫,帮我下载音乐的功能. 现在网上找了相关的一些文章教程 http://jecvay.com/2014/09/python3-web-bug-seri ...
- 更新程序基于IIS
闲着无聊写了个更新程序; 1.支持多种文件格式 2.支持按版本号/文件大小/文件时间进行判断更新 3.支持多级文件目录创建