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);
        }

    }

}

 

转载于:https://www.cnblogs.com/zqiang0803/p/9430512.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值