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 :)

24 April 2009

selayang pandang actionscript


Bagi para flasher yang hoby bikin flash game, presentasi, atau apapun itu, pasti sudah sangat mengenal tenteng actionscript. Tapi, ga da salahnya kan klo aq berikan sedikit penjelasan tentang apa itu actionscript. Actionscript adalah bahasa pemrograman yang berdasar pada ECMAScript. Actionscript digunakan sebagai sebagai bahasa utama bagi pengembangan website dan software yang menggunakan Adobe Flash Player platform. Bahasa ini awalnya dikenalkan oleh Macromedia, tetapi mulai tahun 2005 hak kepemilikannya diakui oleh Adobe.




Actionscript awalnya didesain untuk mengontrol animasi 2D, tetapi sekarang actionscript mampu digunakan untuk pekerjaaan yang lebih kompleks seperti untuk navigasi, pemrograman game, dan user interface pada sebuah web. Dan yang paling terbaru actionscript digunakan sebagai bahasa untuk pemngembangan RIA (Rich Internet Application) melalui Adobe Flex dan Adobe AIR.

Berikut sejarahnya...

ActionScript 1.0 (Flash 5.0 - Flash MX)

Flash 5 yang mulai dikenalkan pada tahun 2000 adalah versi flash pertama yang menyertakan bahasa actionscript di dalamnya. Sebenarnya, sebelumnya di flash 4 sudah ada, tetapi namanya action dan belum sempurna. Actionscript yang mulai dirilis pada flash 5.0 ini adalah actionscript 1.0. Bahasa ini sudah menyertakan pendeklarasian tipe data serta fungsi dan parameternya.

Actionscript 2.0 (Flash MX 2004 - Flash 9.0)

Flash MX 2004 dengan oplayernya flash player 7, adalah versi flash pertama yang menggunakan bahasa actionscript 2. Bahasa ini lebih diunggulkan dalam pembuatan aplikasi daripada actinscript 1.0 karena actionscript 2 mulai menggunakan class-based. Dengan class atau script yang terpisah dari program utama actionscript 2 ini dapat mendukung dalam pengembangan OOP (Object Oriented Programming) karena memungkinkan adanya inheritance atau penggunaan class pada beberapa file flash, sehingga user tidak perlu menulis syntax yang sama untuk 2 program yang berbeda, tetapi cukup dengan mengimport class yang sudah ada.

Actionscript 3 (Flash CS3 - sekarang)

Actionscript merupakan bahasa flash yang paling "powerfull". Bahasa ini mula dirilis di Adobe Flex 2 dan Flash CS3. Dari struktur porgramnya memang agak jauh berbeda dengan bahasa actionscript sebelumnya, tetapi dari segi syntaxnya tidak jauh beda kok. Walaupun kalau dibandingkan jika kita menulis dengan actionscript 3 sedikit lebih panjang syntaxnya daripada actionscript 2, tetapi actionscript 3 memungkinkan run program yang lebih cepat dibandingkan dengan versi sebelumnya. Selain itu, perkembangan flash dan flex ke depan pastilah akan menggunakan bahasa ini.
Adobe sebagai pengembang actionscript 3 memiliki 4 tujuan dalam pengembangan actionscript 3 ini :
  1. Safety : Bahasa as 3 didesain dengan scripting yang aman dan para developer dapatmenulis script dengan code yang mudah diatur.
  2. Simplicity : Bahasa as 3 adalah bahasa yang mudah dipelajari sehingga seorang user yang masih baru pun tidak perlu banyak membaca referensi untuk menulis sebuah program.
  3. Performance : as 3 memungkinkan developer yntuk menulis sebuah program yang berat dan kompleks tetapi dengan performa yang bagus.
  4. Compatibility : as 3 menggunakan dasar bahasa pemrograman dari ECMAScipt dengan fitur as 2 di dalamnya.
So, bagi para flasher yang sudah terbiasa dengan actionscript 2.0, ada baiknya jika mulai mencoba-coba actionscript 3.0 ini, sebelum ketinggalan jaman.