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);
                }
            }
        }
    }
  • 相关阅读:
    POJ1486 Sorting Slides 二分图or贪心
    POJ2060 Taxi Cab Scheme 最小路径覆盖
    POJ3083 Children of the Candy Corn 解题报告
    以前的文章
    POJ2449 Remmarguts' Date K短路经典题
    这一年的acm路
    POJ3014 Asteroids 最小点覆盖
    POJ2594 Treasure Exploration 最小路径覆盖
    POJ3009 Curling 2.0 解题报告
    POJ2226 Muddy Fields 最小点集覆盖
  • 原文地址:https://www.cnblogs.com/kingfly/p/2459450.html
Copyright © 2011-2022 走看看