Aklımda Kalası Kelimeler

* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur

16 Mayıs 2010 Pazar

AS 3.0 - KeyboardEvent ve KeyCombinations

Hikaye şu: Sahnede bir mc var içinde resim, W tuşuna bastınmı yukarı kaysın, Shift + W tuşuna bastın mı daha hızlı kaysın. Kod şu:


import flash.events.KeyboardEvent;

// W tuşuna basıldığında resmi ileri götürelim.
stage.addEventListener(KeyboardEvent.KEY_UP,f_ileri);

function f_ileri(e:KeyboardEvent):void
{
//W tuşunun kodu ne?
if (e.keyCode == 87)
{
mcArkaPlan.y -= 10;
}
// Shift+w tuşunda iki katı hız yapsın.
if (e.shiftKey && e.keyCode == 87)
{
mcArkaPlan.y -= 20;
}
trace("Tuş: "+e.keyCode+" , Shifte basildi mi? = "+ e.shiftKey);
}


Videosu:


Kodu biraz ötele. Oyun konsoluymuş gibi W tuşuna basılı tutuyorsa kullanıcı, sürekli basıldığını kontrol etmeli. Bunu da ENTER_FRAME olayı ile yap. W ye basılıysa 10 hızında arka planı kaydır, Shift+W ise 20 hızında, tuşa basmaktan vazgeçtiyse kaydırmayı durdur. İşte kod:

import flash.events.KeyboardEvent;
import flash.events.Event;

var hiz:Number;
// Sahnedeki her frame geçişinde kontrol edelim hızımız ne?
// hiz==0 ise mcArkaPlan kaymamalı.Durmalı.
// Shift tuşu olmaksızın gidiyorsak yavaş, shift tuşuyla hızlı gitmeliyiz
stage.addEventListener(Event.ENTER_FRAME,f_SonDurum);
function f_SonDurum(e:Event):void
{
if (hiz != 0)
{
mcArkaPlan.y += hiz;
}
}

stage.addEventListener(KeyboardEvent.KEY_DOWN,f_ileri);
stage.addEventListener(KeyboardEvent.KEY_UP,f_dur);

function f_ileri(e:KeyboardEvent):void
{
// W tuşuna basıldığında resmi ileri götürelim.
if (e.keyCode == 87)
{
hiz = -10;
}
// Shift+w tuşunda iki katı hız yapsın.
if (e.shiftKey && e.keyCode == 87)
{
hiz = -20;
}
trace("Tuş: "+e.keyCode+" , Shifte basildi mi? = "+ e.shiftKey);
}

function f_dur(e:KeyboardEvent):void
{
hiz = 0;
}


Hiç yorum yok: