Kali ini kita akan mempelajari cara memantulkan bola/lingkaran. Ada dua cara yang akan kami berikan yaitu dengan menggunakan hitTest dan dengan mendekteksi x dan y. Untuk hitTest kita akan membuat 4 buah persegi panjang yang akan ditempatkan di ke empat sisi stage bagian luar. Apabila bola menyentuh persegi panjang ini maka memantul. Namun penggunaan hitTest ini kadang menimbulkan masalah. Masalah tersebut berupa gerakan pantulan yang menjadi aneh. Mislanya ketika bolanya terkena batas bawah maka akan memantul ke atas tetapi baru memantul sedikit saja bola sudah memantul ke bawah.
Jika masalah tersebut terjadi, silahkan menggunakan alternatif kedua yaitu dengan mendekteksi x dan y. Berikut 2 cara memantulkan bola :
A. Dengan hitTest
1. Buatlah sebuah flash document 400×400 pixel.
2. Buatlah sebuah persegi panjang berwarna merah dengan panjang 400 dan lebar 40. Seleksi persegi panjang ini dan tekan F8. Pada panel yang muncul masukkan batas sebagai name dan movie clip sebagai type lalu tekan ok.
3. Seleksi movie clip ini dan tekan Ctrl+D sebanyak 3 kali sehingga di stage muncul 4 buah movie clip batas. Seleksi 2 buah movie clip dari 4 buah movie clip yang ada dan ubah panjangnya menjadi 40 dan lebarnya menjadi 400.
4. Letakkan 2 buah movie clip batas yang berbentuk lurus keluar stage bagian atas dan bawah. Letakkan 2 buah movie clip batas yang berbentuk tegak keluar stage bagian kanan dan kiri.
5. Seleksi movie clip batas yang terletak di luar stage bagian atas kemudian tekan Ctrl+F3. Pada panel properties yang muncul masukkan atas sebagai instance name.
6. Seleksi movie clip batas yang terletak di luar stage bagian bawah kemudian pada panel properties masukkan bawah sebagai instance name.
7. Seleksi movie clip batas yang terletak di luar stage bagian kanan kemudian pada panel properties masukkan kanan sebagai instance name.
8. Seleksi movie clip batas yang terletak di luar stage bagian kiri kemudian pada panel properties masukkan kiri sebagai instance name.
9. Sehingga stage akan terlihat seperti gambar di bawah ini :
10. Buatlah sebuah lingkaran berwarna kuning dengan biru sebagai warna garisnya. Seleksi lingkaran ini dan tekan F8. Pada panel yang muncul masukkan bola sebagai name dan movie clip sebagai type lalu tekan ok.
11. Seleksi movie clip bola ini dan pada panel properties masukkan bola sebagai instance name. Letakkan movie clip bola ini di tengah-tengah stage.
12. Klik frame 1 dan tekan F9. Pada panel actions yang muncul masukkan script berikut :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | //membuat variable kecepatanX dengan nilai 20 kecepatanX = 20; //membuat variable kecepatanY dengan nilai 18 kecepatanY = 18; //perintah yang dijalankan ketika frame pada movie clip bola dimainkan bola.onEnterFrame = function() { //jika movie clip ini menabrak movie clip berinstance name atas atau bawah if (this.hitTest(atas) || this.hitTest(bawah)) { //minuskan nilai variable kecepatanY kecepatanY = -kecepatanY; } //jika movie clip ini menabrak movie clip berinstance name kanan atau kiri if (this.hitTest(kanan) || this.hitTest(kiri)) { //minuskan nilai variable kecepatanX kecepatanX = -kecepatanX; } //koordinat x movie clip ini ditambah nilai kecepatanX this._x += kecepatanX; //koordinat y movie clip ini ditambah nilai kecepatanY this._y += kecepatanY; }; |
13. Tekan Ctrl+Enter untuk melihat hasilnya.
B. Dengan mendekteksi x dan y
1. Buatlah sebuah flash document 400×400 pixel.
2. Buatlah sebuah lingkaran berwarna kuning dengan biru sebagai warna garisnya. Seleksi lingkaran ini dan tekan F8. Pada panel yang muncul masukkan bola sebagai name dan movie clip sebagai type lalu tekan ok.
3. Seleksi movie clip bola ini dan tekan Ctrl+F3. Pada panel properties yang muncul masukkan bola sebagai instance name. Letakkan movie clip bola ini di tengah-tengah stage.
4. Klik frame 1 dan tekan F9. Pada panel actions yang muncul masukkan script berikut :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | kecepatanX = 20; //membuat variable kecepatanY dengan nilai 18 kecepatanY = 18; //perintah yang dijalankan ketika frame pada movie clip bola dimainkan bola.onEnterFrame = function() { //jika koordniat y movie clip ini berada kurang dari 30 atau lebih dari 370 if (this._y<30 || this._y>370) { //minuskan nilai variable kecepatanY kecepatanY = -kecepatanY; } //jika koordniat x movie clip ini berada kurang dari 30 atau lebih dari 370 if (this._x<30 || this._x>370) { //minuskan nilai variable kecepatanX kecepatanX = -kecepatanX; } //koordinat x movie clip ini ditambah nilai kecepatanX this._x += kecepatanX; //koordinat y movie clip ini ditambah nilai kecepatanY this._y += kecepatanY; }; |
5. Tekan Ctrl+Enter untuk melihat hasilnya.
Kelebihan dengan menggunakan hitTest dibanding dengan mendekteksi x dan y adalah anda hanya tinggal meletakkan movie clip batasnya saja. Sedangkan dengan mendekteksi x dan y anda harus menentukan koordinatnya terlebih dahulu. Namun demikian penggunaan hitTest terkadang menimbulkan masalah seperti yang dikatakan di atas.
Sourcenya dapat di download di sini


/thanks
ありがとうございます。
November 9th, 2009 at 23:46
oke mas, yg ini sdh bisa, baru ja nyobanya, tapi misal kalo mo nambahin link, misal bolanya tetep gerak tapi jika diklik maka akan menuju ke halaman web yg ditentukan, gimana ya? kan itu movie clip, bkn button
November 10th, 2009 at 07:25
Untuk membuka halaman web coba tutorial berikut : http://warungflash.com/2009/08/membuat-link-pada-teks-atau-gambar/
November 16th, 2009 at 17:19
mas, kalo mo bikin animasi hujan jatuh ke genangan air dan kemudian ada animasi riak air-nya gimana mas?
thanks, before.
November 17th, 2009 at 06:37
Akan kami coba buatkan. Tapi kami tidak tahu kapan pasti jadinya. Soalnya kami juga sedang sibuk
November 19th, 2009 at 19:47
SUSAH JUGA TERNYATA… ~x(
November 20th, 2009 at 12:08
Susahnya yang bagian mana?
November 22nd, 2009 at 23:50
mas kalo mo membuat link tapi link buat menampilkan tab flash baru gmna ya? jadi kalo di click kluar tab baru yang bisa di geser2….. tlg tutorialnya mas….. : @-)
November 25th, 2009 at 07:44
Kalau tab kami kurang tahu. Atau mungkin maksud anda muncul swf baru? Kalau iya, itu scriptnya pake load movie http://warungflash.com/2009/08/loadmovienum/