29 April 2009

Event Handling

Dalam sebuah actionscript sering dijumpai sebuah method .addEventListener pada sebuah objek. Kadang ada banyak fungsi yang menyertai method ini. Method .addEventListener ini tak lain dan tak bukan adalah sebuah method untuk mengontrol interaksi sebuah objek dengan objek lain atau dengan sutau keadaan. Even handling, begitu disebutnya pada actionscript 3, adalah segala bentuk interaksi terdapat dalam suatu lingkungan flash. Semua interaksi ini bisa terjadi baik dalam bentuk mouse klik, penekanan tombol pada keyboard, loading data, ataupun masuk pada frame tertentu. Actionscript membuat sebuah object dapat berinteraksi dengan sebuah event menggunakan sebuah Event Listener. Hal ini dapat dilakukan menggunakan method .addEventListener pada sebuah objek yang akan berinteraksi.

Secara umum bentuk dari eventListener dapat digambarkan sebagai berikut :

object.addEventListener(Event, eventListenerFunction);

function eventListenerFunction (e:Event):void{
do someThing;
}


objek merupakan sebuah objek yang akan menerima interaksi, misalnya sebuah MovieClip, button, atau loader. Event merupakan hal yang dapat memicu sebuah objek untuk menjalankan fungsi eventListener. Bingung y..? Pake contoh aja biar g bingung. Misal ada contoh kode program seperti ini :

button.addEventListener(MouseEvent.CLICK, moveThis);

function moveThis(e:MouseEvent):void {
abc_mc.x = abc_mc.x + 5;
}

Fungsi diatas adalah sebuah fungsi untuk menggeser suatu objek(abc_mc) ke kanan sebanyak 5 pixel. Ok, mari bahas satu persatu.
Kita ibaratkan di stage ada sebuah MovieClip dengan nama abc_mc dan sebuah tombol dengan nama button. Karena pada program di atas abc_mc menerima event dari MouseEvent.CLICK, maka jika abc_mc diklik fungsi moveThis akan dijalankan. Pada fungsi moveThis, nilai x dari abc_mc akan ditambah 5 yang berarti abc_mc akan bergeser 5 pixel ke kanan. Perhatikan pada bagian parameter fungsi di atas : moveThis(e:MouseEvent). e merupakan sebuah argumen yang merepresentasikan fungsi moveThis. Pada sebuah EventListener, argumen ini wajib disertakan. Sebagai identifier untuk argumen ini, bebas digunakan kata atau huruf apa saja. Pada contoh di atas digunakan huruf "e". Argumen ini akan digunakan untuk mengontrol beberapa properti dari MouseEvent. Misal, untuk contoh kita dapat mengganti baris

abc_mc.x = abc_mc.x + 5; dengan
e.currentTarget.x = e.cuurentTarget.x + 5;

e.currentTarget akan mengacu pada objek abc_mc. Jadi, hasil dari fungsi ini akan sama saja dengan fungsi yang pertama.
Cara seperti ini akan berguna jika kita akan menggunakan sebuah fungsi yang sama untuk beberapa objek sekaligus. Bayangkan jika kita ingin saat kita mengklik sebuah tombol ada 5 buah MovieClip yang berubah posisi. Kalau dengan cara yang pertama maka kita harus menulis 5 fungsi yang berbeda, wah repot !
Makanya, digunakan e.currentTarget untuk mengacu pada objek apa yang diklik. Metode ini akan jauh lebih efektif dan lebih ringkas untuk mengatur sebuah alur program.
Unttuk mengetahui lebih jelas tentang event handling bisa melihat langsung di referensi actionscript 3 dari Adobe. Atau bisa juga lihat di sini >>
Semoga bermanfaat :)

Tidak ada komentar:

Posting Komentar