Sóng nước lung linh
Chia sẻ bởi Nguyễn Hoàng |
Ngày 29/04/2019 |
59
Chia sẻ tài liệu: Sóng nước lung linh thuộc Bài giảng khác
Nội dung tài liệu:
SÓ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”
Tạ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.
Bâ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:
// 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);
rect = 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
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”
Tạ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.
Bâ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:
// 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);
rect = 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
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Nguyễn Hoàng
Dung lượng: |
Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)