SÓNG NƯỚC LUNG LINH

Chia sẻ: Trần Phi Vũ | Ngày: | Loại File: DOC | Số trang:5

0
115
lượt xem
27
download

SÓNG NƯỚC LUNG LINH

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu tham khảo về cách lập trình sóng nước lung linh.

Chủ đề:
Lưu

Nội dung Text: SÓNG NƯỚC LUNG LINH

  1. 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”
  2. 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.
  3. 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:
  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);
  5. 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
Đồng bộ tài khoản