源码下载:
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); } } }}