แก้ไขครั้งสุดท้ายโดย por20150 เมื่อ 2010-12-11 05:57
วิธีการสร้าง Flash ให้มี Effect น้ำมีคลื่นๆวิ่งไปมาเล็กทำให้ดูเหมือนน้ำจริงๆ แต่เป็น ActionScript 2 นะครับ ไม่ยากอย่างที่คิด มาดูการทำ Flash Effect water ครับ
ตัวอย่างของ Flash Effect water actionscript นี้ดูด้านล่างครับน้ำจะมีคลื่นเล็กวิ้งๆไปมา
http://www.sadung.com/flash/action_script-water-flash.swf
อย่างแรกเตรียม ภาพที่ต้องการทำเอฟเฟคน้ำมีลูกคลื่นใน Flash ก่อน นะครับ เตรียมไว้ สอง รูป โดยให้รูปแรกเป็นBackground รูปที่สองเป็นน้ำเคลื่อนที่ไหวๆ
ต่อมาสร้างเอกสารใหม่ใน flash นะครับเลือก Flash File (ActionScript 2.0)
3 กำหนด ขนาดของ Flashที่เราจะสร้าง โดยไปที่เมนู Modify > Document แล้วตั้งค่าตามรูปเลยครับ
4 ไป import รูปภาพเข้ามาใน Flash โดยไปที่ File > import > import to Library… แล้วเลือกรูปทั้งสองเข้ามา
5 ใน LIBRARY จะมีรูปขึ้นมาสามรูปแบบนี้
6 จากนั้นก็เอารูปที่ต้องทำเป็นพื้นหลังมาใส่ใน layer ที่1 โดยลากมาจาก LIBRARY เลยครับ
7 สร้างเลเยอร์ขึ้นมาใหม่อีกหนึ่ง layer
8 นำรูปน้ำที่เราต้องเอามาทำเอฟเฟคมาใส่ใน Layer ที่2
9 ยังอยู่ที่ layer ที่2 นะครับ กด F8 เพื่อ Convert to Symbol แล้วก็ใส่ ตรงช่อง name : water_mc
10 ดูในส่วนของ Properties ให้ใส่ค่าไปตามรูปเลยครับ (ถ้าใครหาไม่เจอให้กด ctrl+F3)
11 สร้างเลเยอร์ใหม่ อีก layer มันจะชื่อว่า layer3 ให้ไปที่ layer3 แล้วคลิกขวาเลือก Actions
12 ใส่ code action script ลงไป
import flash.display.*;
import flash.geom.*;
import flash.filters.*;
createWater(water_mc);
/**
* Create Water Function
* usage: createWater(myWaterMovieClip);
*/
function createWater(target:MovieClip):Void
{
target.counter = 1;
target.pt = new Point(0, 0);
target.mpoint = new Point(0, 0);
target.myBitmap = new BitmapData(target._width, target._height, false, 0);
target.myDispl = new DisplacementMapFilter(target.myBitmap, target.mpoint, 10, 2, 10, 15, "clamp");
target.myList = new Array();
target.myList.push(target.myDispl);
target.filters = target.myList;
target.onEnterFrame = function() {
filterList = target.filters;
offset = new Array();
offset[1] = new Object();
offset[1].x = target.counter;
offset[1].y = target.counter/8;
target.myBitmap.perlinNoise(45,5,3,50,true,false,7,true,offset);
filterList.mapBitmap = target.myBitmap;
target.filters = filterList;
target.counter++;
};
}
จากนั้นก็รันผลได้เลยครับ ctrl+enter
เคดิต : sadung.com
Flash Effect Water Actionscript
[IMG]
[IMG]