ActionScript 3.0 Klavye Kontrolleri


ActionScript 3.0 da klavye kontrolleri için aşağıdaki kodları kullanabiliriz. Animasyona başlamadan önce eğer elimizde bir balon çizimi varsa onu sahneye ekleyelim yoksa bir şekil çizerek bunu MovieClip olarak sembole dönüştürelim ve InstanceName kısmına balon_mc yazalım. Sonra da Actions panelini açarak aşağıdaki kodları yazmaya başlayalım.

//sahneye bir olay dinleyici atıyoruz ve Klavye Hareketlerini kontrol ediyoruz.
stage.addEventListener(KeyboardEvent.KEY_DOWN, hareket);

function hareket(event:KeyboardEvent) {
    //eğer basılı tutuşan tuş sol yön tuşuysa nesneyi sola doğru hareket ettiriyoruz.
    if (event.keyCode==Keyboard.LEFT) {
        balon_mc.x-=5;
    }
    //eğer basılı tutuşan tuş sağ yön tuşuysa nesneyi sağa doğru hareket ettiriyoruz.
    if (event.keyCode==Keyboard.RIGHT) {
        balon_mc.x+=5;
    }
    //eğer basılı tutuşan tuş yukarı yön tuşuysa nesneyi yukarı doğru hareket ettiriyoruz.
    if (event.keyCode==Keyboard.UP) {
        balon_mc.y-=5;
    }
    //eğer basılı tutuşan tuş aşağı yön tuşuysa nesneyi aşağı doğru hareket ettiriyoruz.
    if (event.keyCode==Keyboard.DOWN) {
        balon_mc.y+=5;
    }
}
Örnek çalışma dosyasını indirebilmek için siteye üye olmanız gerekmektedir. Siteye üye olmak için tıklayın.

, , ,

  1. #1 by cumhurtorun on 11 Mayıs 2010 - 15:48

    hocam merhaba,
    ben yön tuşlarını değilde klavyeden diğer tuşları kullanarak yönlendirme yapmak istiyorum. a,b,c,d gibi.

    Keyboard.A olarak değiştiriyorum kodların içinde fakat çalışmıyor.

    iyi çalışmalar

  2. #2 by wonderfullchild on 11 Mayıs 2010 - 16:14

    yanlardan dışarı çıkmaması için ne yapabiliriz yardımcı olurmusunuz lütfen..

  3. #3 by Erol Demirer on 11 Mayıs 2010 - 19:41

    Klavyede bulunan karakterlerin ASCII kodlarını kullanarak yapabilirsin. Google’da aratırsan tüm karakterlerin ASCII kodlarına ulaşabilirsin. Örneğin A tuşuna basıldığında işlem yapmasını istiyorsan koşulu aşağıdaki gibi yazabilirsin:

    if(e.keyCode==65)

    Sorunun bu şekilde çözülecektir.

  4. #4 by Erol Demirer on 11 Mayıs 2010 - 19:52

    @wonderfullchild kodları aşağıdaki şekilde düzenlersen sahne dışına çıkmasını engellersin. Yalnız oluşturduğun MovieClip’in referans noktasının merkez olması gerekiyor. Eğer sol üst köşe ise /2′leri silebilirsin.

    var hiz:Number=5;

    stage.addEventListener(KeyboardEvent.KEY_DOWN, hareket);

    function hareket(event:KeyboardEvent) {
    if (event.keyCode==Keyboard.LEFT) {
    if (balon_mc.x< =0+balon_mc.width/2) {
    hiz=0;
    } else {
    hiz=5;
    }
    balon_mc.x-=hiz;
    }
    if (event.keyCode==Keyboard.RIGHT) {
    if (balon_mc.x>=0&&balon_mc.x< =stage.stageWidth-balon_mc.width/2) {
    hiz=5;
    } else if (balon_mc.x>=stage.stageWidth-balon_mc.width/2) {
    hiz=0;
    }
    balon_mc.x+=hiz;
    }
    if (event.keyCode==Keyboard.UP) {
    if (balon_mc.y< =0+balon_mc.height/2) {
    hiz=0;
    } else {
    hiz=5;
    }
    balon_mc.y-=hiz;
    }
    if (event.keyCode==Keyboard.DOWN) {
    if (balon_mc.y>=0&&balon_mc.y< =stage.stageHeight-balon_mc.height/2) {
    hiz=5;
    } else if (balon_mc.y>=stage.stageHeight-balon_mc.height/2) {
    hiz=0;
    }
    balon_mc.y+=hiz;
    }
    }

  5. #5 by general55 on 25 Ekim 2010 - 19:36

    Selam Erol Hacom,
    giresun dan mustafa argun.
    klavye yön tuşlarındaki nesnemizin başka bir nesneye değdiğinde temas ettiği nesnenin boyutunun büyümesi ve temas bitince o nesninen eski boyutuna geçmesik kodu hakkında bilia glabilir miyim.saygılar

(yayınlanmayacak)

Login with Facebook:
 

Additional comments powered by BackType