as3.0 橡皮功能2
package com{
import flash.display.MovieClip;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.SimpleButton;
import flash.events.MouseEvent;
import flash.display.Shape;
import flash.geom.Matrix;
import flash.geom.ColorTransform;
import flash.geom.Rectangle;
import flash.display.BlendMode;
public class Drow extends MovieClip {
private var emptyMc:MovieClip;
private var bitmap:Bitmap;
private var bitmapD:BitmapData;
private var blackboard:MovieClip;
private var thisMc:MovieClip;
private var shape:Shape;
private var newMcArr:Array=[];
private var newMc:MovieClip;
public function Drow(_emptyMc:MovieClip,_thisMc:MovieClip,_blackboard:MovieClip) {
emptyMc=_emptyMc;
thisMc=_thisMc;
blackboard=_blackboard;
shape=new Shape()
;
bitmapD=new BitmapData(blackboard.width,blackboard.height,true,0);
bitmap=new Bitmap(bitmapD,"auto",true);
emptyMc.addChild(bitmap);
}
private var penBtn:SimpleButton;
private var revokeBtn:SimpleButton;
private var eraserBtn:SimpleButton;
public function toolFun(_penBtn:SimpleButton,_revokeBtn:SimpleButton,_eraserBtn:SimpleButton) {
penBtn=_penBtn;
revokeBtn=_revokeBtn;
eraserBtn=_eraserBtn;
eraserBtn.addEventListener(MouseEvent.CLICK,onClick);
revokeBtn.addEventListener(MouseEvent.CLICK,onClick);
penBtn.addEventListener(MouseEvent.CLICK,onClick);
}
private function onClick(e:MouseEvent) {
var str:String=e.target.name;
if (str=="penBtn") {
if (penBtn.visible==true) {
penBtn.visible=false;
blackboard.addEventListener(MouseEvent.MOUSE_DOWN,downFun);
} else {
penBtn.visible=true;
blackboard.removeEventListener(MouseEvent.MOUSE_DOWN,downFun);
}
} else if (str=="revokeBtn") {
trace(emptyMc.numChildren);
emptyMc.removeChildAt(emptyMc.numChildren-1);
} else if (str=="eraserBtn") {
if (eraserBtn.visible==true) {
eraserBtn.visible=false;
penBtn.visible=true;
} else {
eraserBtn.visible=true;
}
}
}
private function downFun(e:MouseEvent) {
shape.graphics.lineStyle(20,0);
shape.graphics.moveTo(mouseX,mouseY);
blackboard.addEventListener(MouseEvent.MOUSE_MOVE,moveFun);
blackboard.addEventListener(MouseEvent.MOUSE_UP,upFun);
}
private function moveFun(e:MouseEvent) {
shape.graphics.lineTo(mouseX,mouseY);
if (eraserBtn.visible==false) {
bitmapD.draw(shape,new Matrix(),new ColorTransform(),BlendMode.ERASE);
}
if (penBtn.visible==false) {
bitmapD.draw(shape,new Matrix(),new ColorTransform(),BlendMode.NORMAL,new Rectangle(0,0,1920,1080));
}
e.updateAfterEvent();
}
private function upFun(e:MouseEvent) {
shape.graphics.clear();
blackboard.removeEventListener(MouseEvent.MOUSE_MOVE,moveFun);
blackboard.removeEventListener(MouseEvent.MOUSE_UP,upFun);
}
}
}
as3.0 橡皮功能2的更多相关文章
- as3.0橡皮擦功能
//主容器 var main:Sprite = new Sprite(); main.mouseEnabled = false; addChild(main) //临时容器(所有操作都将先画在临时容器 ...
- As3.0 类的【枚举】
As3.0 类的枚举 “枚举”是您创建的一些自定义数据类型,用于封装一小组值.ActionScript 3.0 并不支持具体的枚举工具,这与 C++ 使用 enum 关键字或 Java 使用 En ...
- as3.0中如何阻止事件冒泡
原作者:菩提树下的杨过转载出处:http://yjmyzz.cnblogs.com 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究 ...
- [ActionScript 3.0] AS3.0和AS2.0的相互通信
AS3和AS2之间的通信,最好的方式可能就是LocalConnection了. AS2向AS3发送数据,即AS2调用AS3的函数: as2.0代码(按钮上写的发送信息代码): on (release) ...
- 转载:Flash AS3.0 加载外部资源(图片,MP3,SWF)的两种方式
Flash AS3.0 加载外部资源(图片,MP3,SWF)的两种方式 出自:http://www.cnblogs.com/top5/archive/2012/08/04/2623464.html 关 ...
- as3.0 interface接口使用方法
[转]as3.0 interface接口使用方法 AS在2.0的时候就支持接口了 接口能够让你的程序更具扩展性和灵活性,打个例如 比方你定义了一个方法 代码: public function aMet ...
- AS3.0定义变量的访问范围
在AS3.0中变量的默认访问范围是:internal:包内成员可以访问,包外不可访问.AS2.0默认访问范围是public
- AS3.0函数定义的方法
在AS3.0中函数的定义有两种方法: 函数语句定义法: function 函数名(参数1:参数类型,参数2:参数类型):返回值类型{ 函数折行的语句 } function testAdd(a:int, ...
- VS2015预览版中的C#6.0 新功能(二)
VS2015预览版中的C#6.0 新功能(一) VS2015预览版中的C#6.0 新功能(三) 自动属性的增强 只读自动属性 以前自动属性必须同时提供setter和getter方法,因而只读属性只能通 ...
随机推荐
- jQuery 移除事件与模拟事件
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- Word,excel开发指南
New Document dfsdfds &dsfds &sdf; dsf dsf dsfds fsdfdsfdsf dsfs dsfds dsf dsfd sfds sdf fd ...
- Appium -作业5(2)
# coding:utf-8 from appium import webdriverimport timedesired_caps = { 'platformName':'Android', 'de ...
- 【转】Django 图表制作(By Highcharts)
马克,待不时之需 Django 图表制作(By Highcharts):https://blog.csdn.net/Temanm/article/details/54141759 免费而优秀的图表JS ...
- 1037B--Reach Median(中位数)
median 中位数 odd 奇数 even 奇数 You are given an array aa of nn integers and an integer ss. It is guarante ...
- Packets 1037A(二进制数)
分析:看这个数有多少位二进制数 #include<cstdio> int main() { int n; while(~scanf("%d",&n)) { ; ...
- Eclipse优化常用方法
Eclipse优化常用方法如下: 1.减少不必要的验证 将Manual保持不动,build里面只留下classpath dependency Validator,其他的全部去掉.如果以后需要对文件进行 ...
- 处于ESTABLISHED 状态的socket 却没有进程信息
接<一次docker中的nginx进程响应慢问题定位记录> 在排查这个问题的时候,我先使用netstat 去查看,看到底是内核协议栈的连接请求没给到进程,还是进程accept链路慢了,或者 ...
- avalon2学习教程08插入移除操作
本节介绍的ms-if指令与ms-visible很相似,都是让某元素"看不见",不同的是ms-visible是通过CSS实现,ms-if是通过移除插入节点实现. ms-if的用法与1 ...
- [CI]CodeIgniter视图 & 模型 & 控制器
---------------------------------------------------------------------------------------------------- ...