博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【AS3代码】擦窗户效果(也就是流行的妄撮游戏)
阅读量:4576 次
发布时间:2019-06-08

本文共 2084 字,大约阅读时间需要 6 分钟。

源码下载:

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

转载于:https://www.cnblogs.com/javaexam2/archive/2012/08/10/2631950.html

你可能感兴趣的文章
UILabel常用属性小结
查看>>
gitlab 邮件服务器配置
查看>>
Python 循环语句(while, for)
查看>>
深入理解JavaScript原型链
查看>>
LinearGradient类来实现图片的渐变效果
查看>>
Golang关键字—— if/else
查看>>
数据清洗
查看>>
PHP&MySQL(三)——数组
查看>>
各种语法解释及用法
查看>>
GPS.NET 和 GeoFramework开源了
查看>>
汇编:采用址表的方法编写程序实现C程序的switch功能
查看>>
AtiveMQ初次连接的 http error:503 连接错误 Prolem accessing /.Reason : Service Unavailable...
查看>>
OFO和摩拜共享单车
查看>>
数据适配 DataAdapter对象
查看>>
有序列表ol和定义列表dl,dt,dd
查看>>
联想小新Air 15 安装黑苹果macOS High Sierra 10.13.6过程
查看>>
公共POI导出Excel方法–java
查看>>
次短路——Dijkstra
查看>>
站立会议总结08
查看>>
C++ stat判断路径是文件还是目录
查看>>