论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash教程
Tag:flash cs,flash 8,鼠绘,as,手绘,工具,文字,loading,入门,初学,mc,影片剪辑,声音,mtv,游戏,引导,遮罩,菜单,补间,广告条,时钟,视频教程

BitmapData与Matrix类打造超酷逼真水波效果

文章类别:Flash | 发表日期:2008-9-21 19:52:24

  用Matrix类跟BitmapData类可以打造很多酷的效果。比如摄像头读取数据等都会用到这个。这里,构建一个超酷逼真的水波效果。用的时候,这里建议一下大家:在一般情况下,不要用这个类。因为这个类比较占计算机CPU资源。只是假如纯粹为了效果较酷。还是可以推荐一下。OK,先look一眼。请用鼠标在上面拖动,即可看效果。

/UploadTeach/200807/20080729162253295.swf

下面,看看制作过程。
1、首先,设置帧频。这里可以设置大一些,为了流畅性。当然,不要过于大了。过于大了,反而会略显不自然。


2、先导入一张预备用作水波背景的图片,这里我用的是我的个人照片。呵呵...大家可以换一下。


3、然后添加上链接标识符"my_taoshaw_photo"。这里,主要为了主场景中AS代码的调用。


当然,也可以直接在库中,对元件击右键。选“链接”。然后在里面输入。




4、在主场景中AS帧中添加代码。


代码如下:
//================版权声明开始================//
//★淘沙网:http://www.taoshaw.com
//★淘沙网所有教程欢迎转载。不过请转载时注明出处。谢谢合作。
//================版权声明结束================//
//导入BitmapData类
import flash.display.BitmapData;
//导入Matrix类
import flash.geom.Matrix;
var my_Bitmapdata1:BitmapData = new BitmapData(128, 128, false, 128);
var my_Bitmapdata2 = new BitmapData(128, 128, false, 128);
var my_Bitmapdata3 = new BitmapData(256, 256, false, 128);
var my_Bitmapdata4 = new BitmapData(128, 128, false, 128);
var my_Bitmapdata5 = new BitmapData(128, 128, false, 128);
var my_Bitmapdata_out = new BitmapData(256, 256, true, 128);
//在此处设置加载图片位置
var my_taoshaw_photo = BitmapData.loadBitmap("my_taoshaw_photo");
var bounds = new flash.geom.Rectangle(0, 0, 128, 128);
var origin = new flash.geom.Point();
var matrix:Matrix = new Matrix();
var matrix2 = new flash.geom.Matrix();
matrix2.a = matrix2.d=2;
var wave = new flash.filters.ConvolutionFilter(3, 3, [1, 1, 1, 1, 1, 1, 1, 1, 1], 9, 0);
var damp = new flash.geom.ColorTransform(0, 0, 9.960937E-001, 1, 0, 0, 2, 0);
var water = new flash.filters.DisplacementMapFilter(my_Bitmapdata3, origin, 4, 4, 48, 48, "ignore");
attachBitmap(my_Bitmapdata_out, 0);
var ms = getTimer();
var frame = 0;
var mouseDown = false;
onMouseDown = function () {
mouseDown = true;
};
onMouseUp = function () {
onEnterFrame();
mouseDown = false;
};
onEnterFrame = function () {
if (mouseDown) {
  var _loc2 = _xmouse/2;
  var _loc1 = _ymouse/2;
  my_Bitmapdata4.setPixel(_loc2+1, _loc1, 16777215);
  my_Bitmapdata4.setPixel(_loc2-1, _loc1, 16777215);
  my_Bitmapdata4.setPixel(_loc2, _loc1+1, 16777215);
  my_Bitmapdata4.setPixel(_loc2, _loc1-1, 16777215);
  my_Bitmapdata4.setPixel(_loc2, _loc1, 16777215);
}
my_Bitmapdata2.applyFilter(my_Bitmapdata4, bounds, origin, wave);
my_Bitmapdata2.draw(my_Bitmapdata2, matrix, null, "add");
my_Bitmapdata2.draw(my_Bitmapdata5, matrix, null, "difference");
my_Bitmapdata2.draw(my_Bitmapdata2, matrix, damp);
my_Bitmapdata3.draw(my_Bitmapdata2, matrix2, null, null, null, true);
my_Bitmapdata_out.applyFilter(my_taoshaw_photo, new flash.geom.Rectangle(0, 0, 256, 256), origin, water);
my_Bitmapdata5 = my_Bitmapdata4;
my_Bitmapdata4 = my_Bitmapdata2.clone();
};
//创建新右键菜单
myMenu = new ContextMenu();
//隐藏右键菜单
myMenu.hideBuiltInItems();
myMenu.customItems.push(new ContextMenuItem("淘沙网:http://www.taoshaw.com", PR));
function PR(obj, item) {
getURL("http://www.taoshaw.com", "_blank");
}
//将新菜单赋予给场景
_root.menu = myMenu;

源文件 water_ol.rar

进入论坛和作者讨论学习:http://space.flash8.net/bbs/thread-358869-1-2.html
上一篇:{应用}渐退方格效果(AS3) 人气:2135
下一篇:{应用}FLASH打造较酷菜单效果 人气:3548
视频教程列表
文章教程搜索
 
Flash推荐教程
Flash热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058