benere ini pertanyaan soal flex,tapi karna yo masih deket2 sama flash jadi ya gapapa ditaroh disini kan?
gini,ini wa baru pake mouse input di dalam game (Baron), untuk mendeteksi mouse input wa pake cara begini di main.mxml nya
Code:
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
width="400"
height="600"
frameRate="100"
creationComplete="creationComplete()"
enterFrame="enterFrame(event)"
click="click(event)"
keyDown="keyDown(event)"
mouseDown="mouseDown(event)"
mouseUp="mouseUp(event)"
mouseMove="mouseMove(event)"
currentState="MainMenu">
</mx:Application>
see where it says "mouseDown"? maksudna adalah setiap ada event mouseDown maka function mouseDown(event) yang akan di panggil
Code:
private function mouseDown(event:MouseEvent):void
{
GameObjectManager.Instance.mouseDown(event);
}
jadi klo ada mouseDown dia panggil event mouseDown di game object manager
Code:
public function mouseDown(event:MouseEvent):void
{
for each (var gameObject:BaseObject in baseObjects)
if (gameObject.inuse)
gameObject.mouseDown(event);
}
disini dia bakal meloop baseObjects dan melihat apakah object masih terpakai (maksud:belum hancur kena peluru),kalo iya maka jalankan function mouseDown(event)
wa ada class Player yang merupakan turunan dari AnimatedGameObject yang merupakan turunan dari GameObject, dan GameObject sendiri adalah anak dari BaseObject (keluarga besar euy

)
Code:
override public function mouseDown(event:MouseEvent):void
{
shooting = true;
}
di Player di override karena di BaseObject memang ada function2 yang tujuannya untuk di override oleh turunanna
code buat mouse input ini jalan dengan lancar,gak ada kendala sama sekali.Cuman waktu wa mo implementasi hal yg sama buat keyboard input...key input gak kebaca (strange, I know....

)
jadi...sekalian aja wa kasi liat flow buat key input.Di atas tadi (mxml) kalian lihat bahwa untuk keyDown event yang di jalankan adalah keyDown(event)
Code:
private function keyDown(event:KeyboardEvent):void
{
GameObjectManager.Instance.keyDown(event);
}
di game object manager
Code:
public function keyDown(event:KeyboardEvent):void
{
for each (var gameObject:BaseObject in baseObjects)
if (gameObject.inuse)
gameObject.keyDown(event);
}
di Player
Code:
override public function keyDown(event:KeyboardEvent):void
{
if(event.keyCode == 80)
GameObjectManager.Instance.paused = !GameObjectManager.Instance.paused
}
nah, baris kode di dalam keyDown di class Player itulah yg ga jalan,entah kenapa.
masalahna bukan di keyCode == 80 karena wa udah nyoba buat menghilangkan conditional if tapi tetep aja baris itu gak jalan

dan waktu wa coba pasang itu baris di function mouseDown codena berhasil, game ter paused
wa udah coba pake even listener (ato event handler ya?) dari referensi wa (ebook) tapi tetep waktu wa coba ga jalan itu key input,padahal waktu wa bikin aplikasi terpisah key input terbaca dengan sukses

jadi masalahna bener2 ada di cara wa handle key input,tolong donk mastah2 disini kasi muridmu ini pencerahan gimana cara handle key input yang benar
