Situs gratis pertama yang direkomendasikan untuk membuat blog adalah Situs gratis pertama yang direkomendasikan untuk membuat blog adalah Blogger.

Drag dan Snap

Drag dan Snap

 

Pada contoh di atas 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.

Sebenarnya kode AS3 memiliki sistem deteksi antara 2 objek yang di drag mouse, yaitu

dropTarget. Kodenya kurang lebih sebagai berikut :

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. Untuk lebih jelasnya, perhatikan langkah berikut :

1.   Lanjutkan file pada tutorial sebelumnya (drag movieclip).

2.   Klik frame 1 layer 2 buka panel Action (F9) dan ubah kodenya menjadi sebagai berikut :

        

3.   Jalankan aplikasi dengan menekan Ctrl+Enter. Klik dan drag kepala panda tersebut mendekati posisi yang tepat (sekitar leher panda) untuk menguji coba kode.


Penjelasan kode :

var awal_x:Number = kepala.x; Pada awalnya kordinat x dan y dari movieclip kepala disimpan di dalam variabel awal_x dan awal_y. Hal ini dimaksudkan agar apabila kepala tidak didrag pada posisi yang tepat, maka akan kembali ke posisi awal


kepala.addEventListener(MouseEvent.MOUSE_DOWN,pencetMouse); Selanjutnya movieclip kepala diberikan listener ketika mouse ditekan. Ketika event terjadi (yaitu ketika Mouse ditekan), maka fungsi pencetMouse akan dijalankan.

kepala.startDrag(); merupakan kode untuk memulai mode drag sebuah objek.

kepala.stopDrag(); merupakan kode untuk mengakhiri mode drag sebuah objek.

var jarak = Math.sqrt(...); merupakan perhitungan jarak menggunakan metode pitagoras yaitu akar dari selisih kuadrat jarak antara movieclip kepala dengan movieclip badan.

if (jarak < 50){...}else {...} merupakan kondisi untuk melakukan proses snap. Apabila jarak kurang dari 50 pixel maka posisi akan di snap, sedangkan jika lebih akan dikembalikan ke posisi awal_x dan awal_y.




“Sumber Informasi”

Labels: Serba-serbi

Thanks for reading Drag dan Snap. Please share...!

Back To Top