Flash AS3制作鼠标划过彩色变黑白效果

时间:2008-03-18 13:27:16  来源:闪吧  作者:horidream  【背景色 杏仁黄 秋叶褐 胭脂红 芥末绿 天蓝 雪青 灰 银河白

  先看原图片:

Flash AS3制作鼠标划过彩色变黑白效果

相关代码:

package {
import flash.display.*;
import flash.events.*;
import flash.ui.Mouse;
import flash.net.*;
public class TurnGray extends Sprite {
private var myURL:String = "images_01.jpg";
private var originalBitmapData:BitmapData;
private var squareBitmapData:BitmapData;
private var grayBitmapData:BitmapData;
private var loaded:Boolean = false;
private var loader:Loader;
private var pic:Bitmap;
private var color:uint;
private var gray:uint;
private var R:uint;
private var squareLength:int = 30;
private var xMouse:Number;
private var yMouse:Number;

public function TurnGray():void {
download();
stage.addEventListener(MouseEvent.MOUSE_MOVE,onMousemove);
function onMousemove(e:MouseEvent):void {
bitmapDataGray();
e.updateAfterEvent();
}
}
public function download():void {
loader = new Loader();
loader.load(new URLRequest(myURL));
loader.contentLoaderInfo.addEventListener(Event.INIT,onLoaded);
function onLoaded(e:Event):void {
loaded = true;
originalBitmapData = Bitmap(e.target.content).bitmapData;
pic = new Bitmap(originalBitmapData);
addChild(pic);
}
}
private function bitmapDataGray():void {
var xMouse = mouseX;
var yMouse = mouseY;
for (var i:int = (xMouse-squareLength/2); i<(xMouse+squareLength/2); i++) {
for (var j:int = (yMouse-squareLength/2); j<(yMouse+squareLength/2); j++) {

color = originalBitmapData.getPixel(i,j);
R = (color>>16) & (0xff);
gray = R + (R<<8)+(R<<16);
originalBitmapData.setPixel(i,j,gray);


}
}
}
}
}

效果源文件下载: Lesson_04鼠标划过变黑白.rar


文章评论

共有 0位网翼网友发表了评论 查看完整内容