
Originally Posted by
42Unregistered
onClipEvent(keyUp)
{nextFrame();
}
kode ini, tentu saja membuat semua tombol keyboard bisa ditekan, karena "key" apa tidak dijelaskan.
jika ingin membuat tombol space, mesti didefinisikan tombolnya. karena ini event movieclip, maka utk memajukan frame di root, pakai this._parent. jadinya spt ini:
onClipEvent(keyUp)
{
if (Key.getCode() == Key.SPACE) {
this._parent.nextFrame();
}
}
kode ini hanya mendeteksi saat key ditekan, jadinya nextframe dijalankan terus menerus.
onClipEvent(keyDown){
if(Key.isDown(Key.SpACE))
nextFrame();
}
ini sama dengan keypress main game, ketika tombol kanan/kiri ditekan, karakternya jalan terus tanpa berhenti.
sementara kode ini:
kibord = new Object();//kita mencatatkan objek bernama "kibord" untuk menerima event tombol keyboard
kibord.onKeyUp = function() { //fungsi kibord menerima keyboar diangkat
tuts = Key.getCode(); // tombol keyboard yang diangkat?
if (tuts==Key.SPACE) {
nextFrame(); //jalankan perintah nextframe jika keyboarnya space
}
};
Key.addListener(kibord); //kode akhir adalah menyuruh flash mendengarkan event keyboard bernama kibord.
kita bisa tidak perlu membuat objek baru, tapi memakai movieclip sebagai objek yang menerima keyboard event. misalnya ini kode dalam frame di root.
function onKeyUp():Void
{
if (Key.getCode()==32) {
nextFrame();
}
};
Key.addListener(this);
jika kita memakai movieclip dan kodenya di dalam timeline movieclip, dalam kodenya , nextFrame menjadi this._parent.nextFrame, karena kita ingin membuat frame di root yang berjalan:
function onKeyUp():Void
{
if (Key.getCode()==32) {
this._parent.nextFrame();
}
};
Key.addListener(this);
apa itu "Key.getCode()==32" itu kode utk tombol "space".
Di flash ada kode key property bisa diakses melalui Key.getCode() atau Key.getAscii();
untuk beberapa tombol, flash membuatnya property key, misalnya. Key.SPACE, Key.DOWN, Key.UP, Key.ENTER dll.
Umumnya tombol seperti ini tidak bisa dibaca stringnya, dan sebagian besar nilai ascii-nya adalah 0. kecuali space, asciinya sama dengan code, yakni 32. sementara tombol enter, ascii dan codenya sama-sama 13.
jadi tidak soal kita mau buat begini:
if (Key.getCode()==32)
atau
if (Key.getCode()==Key.SPACE)
atau
if (Key.getAscii()==32)
atau
if (Key.getAscii()==Key.SPACE)
sama saja
Misalnya, tombol "g" punya nilai ascii=103, nilai code=71, sementara "G" punya ascii=71 dan code=71. jika kita ambil stringnya dengan String.fromCharCode(Key.getAscii()) maka flash akan membacanya sebagai "g".
tapi, String.fromCharCode(Key.getAscii()) utk tombol SPACE, ENTER, UP, RIGHT, DOWN, LEFT, tidak ada.
semoga bermanfaat
Bookmarks