一张现成图片素材添加滤镜效果后,就像冬天玻璃上多了一层雾,此时鼠标充当抹布,按住并拖动鼠标即可擦去”雾气”,让图片慢慢变清晰….效果请看:在图上按住鼠标并拖动

设计思路:加载外部素材图片,将图片置于最底层,创建该图片的滤镜效果,置于上层,当鼠标按下并移动时,其实是在清晰图片的遮罩层绘制图像,此时清晰图片即可显现出来…

package{

import flash.display.Sprite;

import flash.display.Shpe;

import flash.events.Event;

import flas.events.MouseEvent;

import flash.dispay.Loader;

import flash.net.URLRequest;

import flash.display.Bitmap;

import flash.filter.BlurFilter;

//导入所需要的类

public Calss Main extends Sprite{

private var pic:Loader;  //定义loader类

private var bit:Bitmap;    //定义bitmap类

private lvjing:BlurFilter;    //定义滤镜

private bo:boolen=false;    //布尔判断值

public function Main():void{

init();   //构造器函数

}

private function init():void{

pic=new loader();     //创建loader类的实例

pic.contentLoaderInfo.addEventListener(event.COMPLETE,loadok);   //侦听是否加载完成

pic.load(new URLRequest(“a.jpg”));    //加载对象

}

private function loadok(evt:Event):void{

addChild(pic);

bit=new Bitmap(evt.target.loader.content.bitmapData);//  创建清晰图(被遮罩层)

lvjing=new BlurFilter();  //创建滤镜

lvjing.blurX=5;  //设置模糊程度

lvjing.blurY=5;

pic.lvjing=[lvjing];    //pic为添加滤镜后的模糊图片

addChild(bit);

 

var abc:Sprite=new Sprite();   //创建遮罩层

bit.mask=abc;  //bit被abc遮罩

addChild(abc);

stage.addEventListener(MouseEvent.MOUSE_DOWN,down);   //侦听整个舞台

stage.addEventListener(MouseEvent.MOUSE_MOVE,mmove);
stage.addEventListener(MouseEvent.MOUSE_UP,up);

}

private function down(evt:MouseEvent):void{

bo=true;

}

private function up(evt:MouseEvent):void{

bo=false;

}

private function down(evt:MouseEvent):void{

if (bo){

var a:Shape=new Shape();   //开始绘图

a.graphics.beginFill(0x00ff00);

a.graphics.drawRect(mouseX,mouseY,20);   //跟随鼠标坐标,半径为20

a.graphics.endFill();

abc.addChild(a);   //将绘制图像添加到遮罩层

}

}

}

}

 

    博视界科技专注于沉浸式全景数字餐厅、全息酒店宴会厅,旨在帮传统餐饮用科技玩跨界,欢迎咨询!

官方网站:www.boseetech.com

联系方式:    

关注我们:


    【声明】转载本文请注明出处三人行设计,并保留有效链接:Flash as3滤镜应用-纯代码制作擦玻璃效果 http://www.srxtuan.com/archives/1374,谢谢!