105 ob.x += kecepatan;
berarti setiap frame karena menggunakan 30 fps, maka setiap 130 detik posisi x dari burung akan ditambah dengan variabel kecepatan.
if ob.x 600 || ob.x 100 { .. }
adalah kondisi dimana ketika posisi burung terlalu ke kanan atau || terlalu ke kiri, maka variabel kecepatan akan dikalikan
-1;
kecepatan = -1;
berarti ketika kondisi di atas terpenuhi kecepatan akan dibalik. Jika semula adalah 5 maka akan menjadi -5, dan ketika kecepatan -5 maka burung akan
bergerak ke kiri sampai kordinat x 100 dan kondisi if terpenuhi lagi sehingga kecepatan menjadi -5 x -1 = 5; dan burung bergerak ke kanan kembali.
ob.scaleX = kecepatanMath.abskecepatan;
untuk merubah arah burung dengan menggunakan skala X. Ketika kecepatan bernilai -5, maka ob.scaleX akan
bernilai -5 dibagi nilai absolut kecepatan 5, sehingga hasilnya adalah -1 dan burung akan berubah arah flip horizontal
Keyboard Event
Sebagaimana MouseEvent, Keyboard Event adalah sebuah event yang terjadi ketika ada masukan dari keyboard. Contoh penggunaan Keyboard Event adalah pada saat
menggerakkan sebuah objek dengan menggunakan tombol panah, misalnya ketika membuat simulasi gerakan mobil. Untuk lebih jelasnya perhatikan contoh berikut :
1. Buatlah sebuah file baru. Selanjutnya buatlah sebuah gambar mobil tampak atas dan menghadap ke atas, atau anda dapat mengimport gambar siap pakai dengan
memilih menu File Import Import to Stage. 2. Seleksi gambar mobil tersebut, kemudian Convert to Symbol menjadi movieclip
“mobil”. Agar dapat diakses oleh kode, tambahkan instance name “mobil”.
Gambar 138. Movieclip mobil.
3. Buatlah sebuah layer baru layer 2. Klik frame 1 layer 2 buka panel Action F9
dan ketikan kode berikut :
1. var
tombol_atas :
Boolean =
false ;
2. var
tombol_bawah :
Boolean =
false ;
3. var
tombol_kiri :
Boolean =
false ;
4. var
tombol_kanan :
Boolean =
false ;
5. mobil
. kecepatan
= ;
6. 7.
8. function
keyDownFunction event
: KeyboardEvent
: void
{ 9.
if event
. keyCode
== 38
{ 10.
tombol_atas =
true ;
11. }
else if
event .
keyCode ==
39 {
12. tombol_kanan
= true
; 13.
} else
if event
. keyCode
== 40
{ 14.
tombol_bawah =
true ;
15. }
else if
event .
keyCode ==
37 {
16. tombol_kiri
= true
; 17.
} 18.
} 19.
function keyUpFunction
event :
KeyboardEvent {
20. if
event .
keyCode ==
38 {
21. tombol_atas
= false
; 22.
} else
if event
. keyCode
== 39
{ 23.
tombol_kanan =
false ;
24. }
else if
event .
keyCode ==
40 {
25. tombol_bawah
= false
; 26.
} else
if event
. keyCode
== 37
{ 27.
tombol_kiri =
false ;
28. }
29. }
30. 31.
function gerakMobil
e :
Event :
void {
32. var
ob :
Object =
e .
currentTarget ;
33. ob
. x
+= ob
. kecepatan
Math .
sin ob
. rotation
Math .
PI 180
; 34.
ob .
y -=
ob .
kecepatan Math
. cos
ob .
rotation Math
. PI
180 ;
35. mengatur berdasarkan input tombol
36. if
tombol_atas {
37. if
ob .
kecepatan 10
{ 38.
ob .
kecepatan +=
0.2 ;
39. }
40. }
else if
tombol_bawah {
41. ob
. kecepatan
= 0.8
; 42.
} else
{ 43.
ob .
kecepatan =
0.95 ;
44. }
45. if
tombol_kanan {
46. ob
. rotation
+= 5
; 47.
} else
if tombol_kiri
{ 48.
ob .
rotation -=
5 ;
107 49.
} 50.
51. }
52. 53.
stage .
addEventListener KeyboardEvent
. KEY_DOWN
, keyDownFunction
; 54.
stage .
addEventListener KeyboardEvent
. KEY_UP
, keyUpFunction
;
55.
mobil .
addEventListener Event
. ENTER_FRAME
, gerakMobil
;
4. Jalankan kembali aplikasi dengan menekan Ctrl+Enter, dan tekan tombol panah
pada keyboard untuk mengatur gerakan mobil. Penjelasan program :
var tombol_atas:Boolean=false;
merupakan deklarasi
variabel untuk
mendeteksi apakah tombol atas ditekan true atau dilepas false.
if event.keyCode == 38 { tombol_atas=true; }
Untuk mendeteksi tombol yang ditekan, setelah listener KeyboardEvent aktif maka kode masing-masing
tombol keyboard bisa dideteksi. Sebagai contoh tombol panah atas memiliki kode 38.
ob.x += ob.kecepatan Math.sinob.rotation Math.PI 180;
merupakan perhitungan trigonometri sederhana sebuah objek berdasarkan rotasi yang dimilikinya.
stage.addEventListenerKeyboardEvent.KEY_DOWN, keyDownFunction;
merupakan deklarasi KeyboardEvent untuk mendeteksi tombol ditekan.