1
Contents Membuat Animasi MovieClip Melalui ActionScript ...................................................................................... 1 Memahami Event enterFrame .................................................................................................................. 1 Manipulasi Property Movieclip Dalam Event enterFrame........................................................................ 3 Property Movieclip Buatan Sendiri ........................................................................................................... 5
Membuat Animasi MovieClip Melalui ActionScript Memahami Event enterFrame Sebuah objek MovieClip di dalam Flash memiliki timeline-nya sendiri. Sebuah timeline merupakan deretan frame-frame. Dengan demikian setiap MovieClip akan memiliki event : onClipEvent(enterFrame){ // isi event }
Kita dapat menyisipkan perintah-perintah kita sendiri ke dalam isi event ini. Dikarenakan event ini adalah event enterFrame, maka perintah yang kita tuliskan tersebut akan dieksekusi terus menerus selama MovieClip tersebut masih berada di atas Stage. Contohnya : 1
Bukalah sebuah dokumen Flash baru, dan buatlah sebuah gambar rectangle di atas Stage.
2
Convert gambar shape tersebut menjadi sebuah movieclip
2 3
Lakukan klik kanan pada movieclip tersebut dan pilih menu Actions untuk membuka panel ActionScript, lalu ketikkan script berikut : onClipEvent(enterFrame){ trace(“ini eksekusi enterFrame”); }
4
Jalankan flash tersebut melalui menu Control Test Movie. Maka akan muncul terus menerus pesan “ini eksekusi enterFrame” dikarenakan pesan tersebut dimasukkan ke dalam event enterFrame dari movieclip yang sedang berada di atas Stage.
Ada cara lain dalam menyisipkan perintah ke dalam isi event enterFrame dari sebuah movieclip. Untuk memahaminya, ikutilah langkah-langkah berikut : 1
Bukalah sebuah dokumen Flash baru, dan buatlah sebuah gambar rectangle di atas Stage.
2
Convert gambar shape tersebut menjadi sebuah movieclip
3
Pada panel Properties beri nama instance untuk movieclip tersebut. Misalnya nama mc_kotak.
3
4
Lalu buatlah sebuah layer baru di atas layer pertama
5
Pada layer kedua tersebut, klik kanan dan pilih menu Actions untuk membuka panel ActionScript, lalu ketikkan script berikut : mc_kotak.onEnterFrame = function() { trace("ini adalah eksekusi enterFrame"); }
6
Jalankan flash tersebut melalui menu Control Test Movie. Maka akan muncul terus menerus pesan “ini eksekusi enterFrame” dikarenakan pesan tersebut dimasukkan ke dalam event enterFrame dari movieclip yang sedang berada di atas Stage.
Manipulasi Property Movieclip Dalam Event enterFrame Setelah mengenal cara kerja event enterFrame, selanjutnya kita mencoba mengenal lebih jauh perintah apa saja yang bisa dimasukkan ke dalam event enterFrame. Secara metodologi, hampir semua script perintah bisa kita masukkan ke dalam event enterFrame. Pertama-tama kita kenal terlebih dulu property dari sebuah movieclip. Ketika sebuah movieclip diletakkan di atas Stage, ia akan memiliki property _x dan _y yang merupakan koordinat posisinya di atas Stage. Selain itu setiap movieclip juga pasti memiliki property _alpha transparansinya di atas Stage. Untuk memahami lebih lanjut, ikutilah langkah-langkah berikut :
yang merupakan indikator
4 1
Bukalah sebuah dokumen Flash baru, dan buatlah sebuah gambar rectangle di atas Stage.
2
Convert gambar shape tersebut menjadi sebuah movieclip
3
Pada panel Properties beri nama instance untuk movieclip tersebut. Misalnya nama mc_kotak.
4
Lalu buatlah sebuah layer baru di atas layer pertama
5
Pada layer kedua tersebut, klik kanan dan pilih menu Actions untuk membuka panel ActionScript, lalu ketikkan script berikut : mc_kotak.onEnterFrame = function() { _x++; _y++; _alpha--; }
6
Jalankan flash tersebut melalui menu Control Test Movie. Akan terlihat bahwa movieclip tersebut bergerak ke kanan bawah dan semakin menghilang.
5 Perintah _x++ di dalam event enterFrame artinya kita menaikkan nilai koordinat _x menjadi bertambah 1 setiap kali event enterFrame dieksekusi. Begitu juga dengan perintah _y++. Hasilnya adalah movieclip akan terlihat bergerak ke kanan dan ke bawah. Perintah _alpha-- di dalam event enterFrame artinya kita menurunkan nilai _alpha menjadi berkurang 1 setiap kali event enterFrame dieksekusi. Hasilnya adalah movieclip akan terlihat menjadi semakin menghilang.
Property Movieclip Buatan Sendiri Property _x, _y, dan _alpha merupakan predefined property atau property yang sudah didefinisikan sebelumnya oleh class MovieClip. Selain property tersebut, kita bisa membuatkan property versi kita sendiri ke dalam movieclip. Misalnya kita akan membuatkan property bernama dx yang bernilai 1, lalu dalam setiap event enterFrame, property _x akan ditambahkan nilainya dengan dx. Scriptnya adalah sebagai berikut : mc_kotak.dx = 1; mc_kotak.onEnterFrame = function() { _x += this.dx; }
Hasilnya adalah, kalau script tersebut dijalankan dengan Test Movie, movieclip kotak akan bergerak ke arah kanan sebanyak 1 pixel setiap kali. Penggunaan this.dx untuk memanggil nilai dx dikarenakan script tersebut berada di dalam event enterFrame, dan event enterFrame tersebut merupakan event dari movieclip mc_kotak dan di dalam movieclip mc_kotak sebelumnya terlebih dulu telah dibuatkan property dx dengan nilai = 1. Seandainya kita ingin agar pergerakan kotak tidak linear melainkan mengalami perlambatan, maka kita perlu memasukkan perhitungan perlambatan itu ke dalam event enterFrame. Contohnya adalah sebagai berikut : mc_kotak.dx = 10; mc_kotak.onEnterFrame = function() { _x += this.dx; this.dx *= 0.98;
6 }
Apabila script ini dijalankan, movieclip kotak akan bergerak ke kanan, mula-mula kencang, kemudian menjadi pelan. Ini disebabkan karena nilai dx semakin lama semakin kecil, karena terus menerus dikalikan dengan 0.98. Seandainya kita ingin agar pergerakan kotak berhenti sama sekali sewaktu hampir menyentuh batas pinggir Stage, kita memodifikasi event enterFrame menjadi null, sehingga tidak ada lagi script yang dijalankan oleh event enterFrame. Contohnya adalah sebagai berikut : mc_kotak.dx = 10; mc_kotak.onEnterFrame = function() { _x += this.dx; this.dx *= 0.98; if (_x > Stage.width - 100) { this.onEnterFrame = null; } }
Pada setiap event enterFrame kita memeriksa apakah posisi _x sudah mendekati batas pinggir Stage, dengan syntax if (_x > Stage.width - 100)
Apabila suatu ketika kondisi ini terpenuhi, maka secara otomatis script langsung menjalankan perintah : this.onEnterFrame = null;
yang artinya tidak akan ada lagi script yang dijalankan untuk event enterFrame.