SÓNG NƯỚC LUNG LINHTa hãy bắt đầu với ảnh chụp hoàng hôn này: Lưu nó với tên: sky.jpg Sau đó, dùng photoshop hoặc một trình đồ họa khác để lật bức ảnh này lại và lưu với tên “water” Tư l
Trang 1SÓNG NƯỚC LUNG LINH
Ta hãy bắt đầu với ảnh chụp hoàng hôn này:
Lưu nó với tên: sky.jpg
Sau đó, dùng photoshop hoặc một trình đồ họa khác để lật bức ảnh này lại và lưu với tên “water”
Tư liệu có sẵn lúc này là hai hình ảnh cở 406x172 px,
Bây giờ, mở Flash và tạo một tài liệu mới 400x330 px
Nhấn Ctrl + R (import), và nhập hình “sky.jpg” vào sân khấu Bấm chọn hình mới nhập vào rồi bấm phím F8 để chuyển nó thành MovieClip, đặt tên nó là “sky_mc”
Trang 2Tạo lớp mới, bấm lại phím Ctrl + R, nhập tập tin water.jpg, đặt nó dưới hình ảnh "sky", chuyển đổi nó thành movie clip, và tên nó như là “water_mc” Cho cho nó nằm cạnh dưới hình bầu trời
Tạo lớp mới, vẽ một hình chữ nhật (400 với px) và chọn màu lại cho nó với một
gradient từ trắng đến màu đen Bấm chọn hình chữ nhật rồi bấm phím F8 để chuyển đổi nó để thành movieclip và tên nó là: gradient_mc
Trang 3Bây giờ hãy nhấp vào mỗi hình ảnh, và điền tên của các mc vào ô Instance name như
ở hình dưới đây:
Sau đó, tạo ra một lớp mới, nhấn F9, và trong cửa sổ Actions frame vừa xuất hiện - dán đoạn mã này vào:
Trang 4// Chỉ cần copy dán vào không phải đánh lại dễ bị nhầm.
var w = water_mc._width;
trace(w);
var h = water_mc._height;
ripple = new flash.display.BitmapData(w, h);
ripple3 = new flash.display.BitmapData(w, h / 2);
ripple2 = new flash.display.BitmapData(w, h / 4);
ripple1 = new flash.display.BitmapData(w, h / 4);
gradient = new flash.display.BitmapData(ripple.width, ripple.height); gradient.draw(gradient_mc, new flash.geom.Matrix(1, 0, 0, 1, 0, 0)); gradient_mc._visible = false;
offset3 = new flash.geom.Point(0, 0);
offset2 = new flash.geom.Point(0, 0);
offset1 = new flash.geom.Point(0, 0);
speed1 = -0.300000;
speed2 = -0.600000;
speed3 = -1.200000;
pt = new flash.geom.Point(0, 0);
Trang 5rect = new flash.geom.Rectangle(0, 0, ripple.width, ripple.height);
this.onEnterFrame = function ()
{
offset1.y = offset1.y + speed1;
offset2.y = offset2.y + speed2;
offset3.y = offset3.y + speed3;
ripple3.perlinNoise(0, 15, 1, seed, true, true, 1, true, [offset3]);
ripple2.perlinNoise(0, 10, 1, seed, true, true, 1, true, [offset2]);
ripple1.perlinNoise(0, 5, 1, seed, true, true, 1, true, [offset1]);
ripple.copyPixels(ripple1, r1rect, r1pt);
ripple.copyPixels(ripple2, r2rect, r2pt);
ripple.copyPixels(ripple3, r3rect, r3pt);
ripple.merge(gradient, rect, pt2, 127, 127, 127);
dMap = new flash.filters.DisplacementMapFilter(ripple, pt, null, 1, 100, 100, "WRAP"); water_mc.filters = [dMap];
};
r1rect = new flash.geom.Rectangle(0, 0, ripple1.width, ripple1.height);
r2rect = new flash.geom.Rectangle(0, 0, ripple2.width, ripple2.height);
r3rect = new flash.geom.Rectangle(0, 0, ripple3.width, ripple3.height);
r1pt = new flash.geom.Point(0, 0);
r2pt = new flash.geom.Point(0, ripple1.height);
r3pt = new flash.geom.Point(0, ripple1.height + ripple2.height);
//
Mời bạn nhấn Ctrl+Enter thưởng thức thành quả
Tải mẫu tại đây