Latest Blog
Multimedia Interaktif Tata Surya
Membuat Multimedia Pembelajaran Interaktif tentang tata surya
ALL BLOG
;
Menggerakkan Movieclip dengan drag mouse ke posisi tertentu
Konsep dasar
Beberapa aplikasi multimedia memanfaatkan fitur drag objek atau drag movieclip, dari sebuah tempat ke tempat lain. Proses drag sendiri mudah dilakukan dengan AS3 karena AS3 masih menggunakan kode yang sama dengan AS1/2 untuk keperluan drag, yaitu startDrag() dan stopDrag(). Hanya saja ketika menggunakan kode tersebut kita membutuhkan listener berupa MouseEvent yaitu MOUSE_DOWN dan MOUSE_UP. Untuk lebih jelasnya perhatikan langkah berikut :
- Pada file aplikasi Flash, buatlah 2 buah gambar yaitu kepala panda dan badan panda yang terpisah, kemudian convert menjadi movieclip kepala dan movieclip badan. Perhatikan letak titik pusat (titik registrasi) dari movieclip tersebut( + )
- Tambahkan instance name pada masing-masing movieclip, yaitu kepala dan badan.
- Selanjutnya buatlah sebuah layer baru yaitu layer kode, klik frame 1 layer kode, kemudian ketikkan kode berikut
import flash.events.MouseEvent;
var awal_x:Number = kepala.x;
var awal_y:Number = kepala.y;
kepala.addEventListener(MouseEvent.MOUSE_DOWN, pencet_mouse);
kepala.addEventListener(MouseEvent.MOUSE_UP, lepas_mouse);
function pencet_mouse(e:MouseEvent):void{
kepala.startDrag();
}
function lepas_mouse(e:MouseEvent):void{
kepala.stopDrag();
//snap ke badan
var jarak = Math.sqrt((kepala.x - badan.x)*(kepala.x - badan.x)+(kepala.y - badan.y)*(kepala.y - badan.y));
if (jarak <50){
kepala.x = badan.x;
kepala.y = badan.y;
}else{
kepala.x = awal_x;
kepala.y = awal_y;
}
}
Jalankan aplikasi dengan menekan tombol Ctrl+Enter, maka hasil dari tutorial ini adalah sebagai berikut:
Dengan memanfaatkan kodestartDrag dan stopDrag, kita dapat membuat sebuah sistem drag sederhana. Untuk mendeteksi apakah movieclip kepala sudah berada tepat diposisi movieclip badan digunakan metode jarak, yaitu menggunakan teori pitagoras sederhana dengan menghitung akar (Math.sqrt) kuadrat dari selisih kordinat 2 objek. Sehingga ketika movieclip kepala berjarak (ber radius) kurang dari 50 pixel dan tombol mouse dilepas, maka kordinat movieclip kepala dijadikan sama dengan kordinat movieclip badan sehingga akan muncul efek SNAP TO OBJECT.
Sebenarnya kode AS3 memiliki sistem deteksi antara 2 objek yang di drag mouse, yaitu dropTarget. Kodenya kurang lebih sebagai berikut :
function lepas_mouse(e:MouseEvent):void{
kepala.stopDrag();
//snap ke badan
trace(kepala.dropTarget);
}
Akan tetapi kode tersebut kurang optimal, karena deteksi posisi masih terlalu luas, sehingga ketika kepala baru menyentuh titik terluar badan sudah dianggap sebagai dropTarget, sehingga lebih baik menggunakan metode pengukuran jarak agar akurasi lebih tepat.
File Sumber
download
Share ( Ayo Berbagi )
Leave me a comment
untuk pertanyaan lebih baik di email langsung ke wandah [at] wandah [dot] com agar cepat direspon




