Hasil Akhir
Berikut adalah efek salju yang akan kita buat.
Langkah 1 – Persiapan
Buka Flash dan buatlah dokumen baru (actionscript 3.0).
Jika sulit untuk membuat gambar salju seperti diatas, cukup buat gambar yang sederhana
saja dengan lingkaran dan warna gradasi putih (yang penting ada gambar buat salju :D).
Kemudian convert gambar tersebut menjadi MovieClip dengan namaSnow, beri tanda
centang pada opsi Export for Actionscript.
Langkah 4 – Mulai Coding
Klik frame 1 layer script, kemudian buka panel action dengan menekan tombol F9.
1 import flash.events.Event;
2
1 function init():void {
2 for (var i:int=0; i<maxSnow; i++) {
3 var snow:Snow = new Snow();
4
5 snow.x = generateXPosition(); // mengacak koordinat X salju
6 snow.y = -sheight / 2 + Math.random() * (1.500000 * sheight);
7
8 snow.alpha = generateAlpha(); // untuk membuat perbedaan transparansi warna pada salju
9 snow.scaleX = snow.scaleY = generateScale(); // untuk membuat perbedaan ukuran salju
10
11 snow.velocity = generateVelocity(); // untuk membuat perbedaan percepatan gravitasi
12 snow.wind = generateWind(); // untuk membuat perbedaan kecepatan dan arah angin
13
14 if (Math.random() > .5) {
15 snow.rot = 1 + Math.random() * 2;
16 } else {
17 snow.rot = 1 + Math.random() * -2;
18 }
19
20 addEventListener(Event.ENTER_FRAME, mover);
21
22 addChild(snow);
23 snows.push(snow); // simpan salju kedalam array
24 }
25 }
26
1 function generateAlpha():Number {
2 return .3 + (Math.random() * .7);
3}
4
1 function generateScale():Number {
2 return minSize + ((maxSize - minSize) * Math.random());
3}
4
1 function generateVelocity():Number {
2 return (Math.random() * speed) + 0.5;
3}
4
1 function generateWind():Number {
2 if (Math.random() > .5) {
3 return Math.random() * maxWindSpeed;
4 } else {
5 return Math.random() * -maxWindSpeed;
6 }
7}
8
1 init();
2
Kesimpulan
Cobalah merubah-rubah parameter pada variabel yang ada dan lihat hasilnya. Coba juga
untuk membuat bentuk-bentuk salju yang lain.
Challenge!
Cobalah membuat beberapa jenis salju untuk ditampilkan. Hasil akhir dapat seperti
berikut.