zoukankan      html  css  js  c++  java
  • 【AS3代码】擦窗户效果(也就是流行的妄撮游戏)

    package
    {
        import flash.display.Bitmap;
        import flash.display.Loader;
        import flash.display.Shape;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.events.MouseEvent;
        import flash.filters.BlurFilter;
        import flash.net.URLRequest;
        
        public class Main extends Sprite
        {
            private var _pic:Loader;
            private var _pic2:Loader;
            private var _bit:Bitmap;
            private var abc:Sprite;
            private var bo:Boolean = false;        //表示当前鼠标不进行绘图
            
            public function Main():void
            {
                //载入图片
                _pic = new Loader();
                _pic2 = new Loader();
                _pic.load(new URLRequest("pp.jpg"));
                
                //监听加载完毕事件
                _pic.contentLoaderInfo.addEventListener(Event.COMPLETE,loadok);            
            }
            private function loadok(evt:Event):void
            {
                //----上层添加模糊图片的写法---------------------
                
                //定义模糊滤镜
                //var lvjing:BlurFilter = new BlurFilter();
                //lvjing.blurX = 0;
                //lvjing.blurY = 0;
                //_pic.filters = [lvjing];    //模糊设置绑定到图片上
                
                //将使用了模糊滤镜的图片添加到舞台
                //this.addChild(_pic);
                
                //将保持原有清晰度的图片添加到舞台(该图片在模糊图片的上层)
                //_bit = new Bitmap(evt.target.loader.content.bitmapData);
                //this.addChild(_bit);
                
                //给清晰图片上加一层遮罩层(遮罩也就是把当前图片遮住,隐藏)
                //abc = new Sprite();
                //_bit.mask = abc;
                //this.addChild(abc);
                
                
                //----上层添加一张新图的写法----------------------------------------
                
                //将下层的原图添加到舞台
                this.addChild(_pic);
                
                //载入另一张图片,并添加到舞台(放置在之前图片的上层)
                _pic2 = new Loader();
                _pic2.load(new URLRequest("pp2.jpg"));
                this.addChild(_pic2);
                
                //创建一个遮罩对象
                abc = new Sprite();
                
                //将遮罩应用在最上层的图片上,使之隐藏
                _pic2.mask = abc;
                this.addChild(abc);
                
                
                //监听舞台中擦窗户的动作(鼠标事件)按住鼠标拖动时才是擦窗户
                //鼠标按下
                this.stage.addEventListener(MouseEvent.MOUSE_DOWN, down);
                
                //鼠标移动
                this.stage.addEventListener(MouseEvent.MOUSE_MOVE, mmove);
                
                //鼠标抬起
                this.stage.addEventListener(MouseEvent.MOUSE_UP, up);
            }
            
            //鼠标按下,设为可以绘图
            private function down(evt:MouseEvent):void
            {
                bo = true;    
            }
            //鼠标抬起,设为不可绘图
            private function up(evt:MouseEvent):void
            {
                bo = false;    
            }
            //鼠标移动,开始绘图
            private function mmove(evt:MouseEvent):void
            {
                if(bo == true)
                {
                    var a:Shape = new Shape();
                    a.graphics.beginFill(0x00ff00);
                    a.graphics.drawCircle(this.mouseX, this.mouseY, 25);    //鼠标在哪,就在哪绘制
                    a.graphics.endFill();
                    
                    //将绘制添加到遮罩层
                    abc.addChild(a);
                }
            }
        }
    }
  • 相关阅读:
    让我们一起Go(八)
    让我们一起Go(七)
    让我们一起Go(六)
    VTemplate模板引擎的使用入门篇
    超时时间已过或服务器未响应的解决方法
    SQL Server 2005使用BCP命令将数据表导出到Excel第一行包括表头
    VTemplate模板引擎的使用进阶篇
    VTemplate模板引擎的使用认识篇
    免费开源的模板引擎VTemplate
    .NET 4.5 中新提供的压缩类
  • 原文地址:https://www.cnblogs.com/kingfly/p/2459450.html
Copyright © 2011-2022 走看看