Flash ActionScript 3.0 İle klavye kontrolü
Bu uygulamamızda flash sahnesinde bulunan bir nesneyi klavye kullanarak hareket ettireceğiz. Bunu için nesnelerin koordinatları hakkında biraz bilgi vereceğim. Hepimiz matematikten az çok biliriz koordinat sistemini. Aşağıdaki bir görselle anlatacağım.
Sahnenin sol üst köşesi koordinat sisteminde (0,0) noktasıdır. (x,y) koordinat sistemine göre burada bulanan bir nesne x=0 ve y=0 koordinat değerindedir. Nesne sağa gittikçe x değeri, aşağı gittikçe ise y değeri artar. Sola gittikçe x değeri azalırken yukarı gittikçe de y değeri azalır. Bunu göz önüne alarak nesnelerin x ve y koordinatlarını değiştirdiğimizde nesne hareket eder. Bu bilgilerden sonra şimdi tasarıma geçelim.
Flash CS5 programını açarak actionscript 3 dosyası oluşturun. Sahneye çizim araç çubuğunu kullanarak bir şekil çizin. Ben sahneye bir daire çizdim.
Çizdiğiniz bu şekli film klibine çevireceğiz. Bunun için F8 tuşuna basın ve türü Film Klibi seçin.
Burada dikkat edeceğimiz bir nokta var o da yukarıda işaretlediğim kızım. Kayıt kısmında 9 adet nokta verilmiş. Bunlardan hangisinie seçerseniz nesnenin XY koordinatları o noktaya göre belirlenir. Biz bu uygulamamızda koordinat merkezi olarak ortayı seçtik. İsterseniz farklı noktayı da seçebilirsiniz. Bu aşamada çokta bir önemi yok aslında. İleride yapacağımız uygulamalarda buna dikkat ederek işlerimizi yapacağız. Neyse geri derse dönelim. Tamamı tıkladıktan sonra nesnemiz artık film klibine dönüştü.
Şimdi nesnemizi seçiyoruz ve özellikler kısmında bulunan <Örnek Adı> kısmına nesnenin adını yazın. Nesneye ben TOP adını verdim. Artık kodlarını yazalım. Sahnede boş bir alanı tıklayın ve F9’a basın ve kodlama penceresini açın ve aşağıdaki kodları yazın.
stage.addEventListener(KeyboardEvent.KEY_DOWN, hareket); //Bu satırla klavye dinleme dinleme işlemi başlatılır //ve klavyeden bir olay gelirse hareket fonksiyonu //çalıştırılır. function hareket(event:KeyboardEvent) { //eğer basılı tutulan tuş sol yön tuşuysa nesneyi sola //doğru hareket ettiriyoruz. if (event.keyCode==Keyboard.LEFT) { TOP.x -= 5; // top nesnesinin x koordinatını 5 //eksiltir. } //eğer basılı tutulan tuş sağ yön tuşuysa nesneyi sağa //doğru hareket ettiriyoruz. if (event.keyCode==Keyboard.RIGHT) { TOP.x += 5; // top nesnesinin x koordinatını //5 artırır. } //eğer basılı tutulan tuş yukarı yön tuşuysa nesneyi //yukarı doğru hareket ettiriyoruz. if (event.keyCode==Keyboard.UP) { TOP.y -= 5; // top nesnesinin y koordinatını 5 //eksiltir. } //eğer basılı tutulan tuş aşağı yön tuşuysa nesneyi //aşağı doğru hareket ettiriyoruz. if (event.keyCode==Keyboard.DOWN) { TOP.y += 5; //top nesnesinin y koordinatını 5 //artırır. } // TOP.y += 5; yerine TOP.x = TOP.x +5;şeklinde de // kullanılabilir. }
Kodların açıklamaları yanlarına yazılmıştır. Kolay gelsin.
Örnek Uygulama
[kml_flashembed publishmethod=”static” fversion=”8.0.0″ movie=”http://www.mustafaakbal.com.tr/wp-content/uploads/2013/04/klavyeilehareket.swf” width=”470″ height=”350″ targetclass=”flashmovie”]
[/kml_flashembed]
öncelikle örneğiniz için teşekkürler..emeğinize sağlık..peki sadece yön tuşları değil de klavyede ki her bir harfin kontrolünü nasıl sağlanır..ben bir klavye oyunu tasarlamak istiyorum ve örneğin klavyeden a tusuna basılınca sahnedeki a balonu patlayacak..ascii kodları geldi aklıma ama kodu bir türlü düzenleyemedim yardımcı olursanız çok sevinirim 🙂
en kısa sürede gerekli dersi ekleyeceğim. şu sıralar ev taşıyorum internetim yok. 🙂
Dersi ekledim aşağıdaki adresten ulaşabilirsiniz. umarım işinize yarar.
http://www.mustafaakbal.com.tr/flash-cs5-actionscript-ile-klavyede-basilan-harflerin-kontrolu.html
Merba oyunu yanlıs yapmıssınız duvardan gecerken hata vermiyo ama topları yiyebiliyor
İyi günler dilerim öcelikle benim bir sorun olucaktı.Farz edin ekranda kutu adında bir nesne var bir butonu basılı tuttuğumda o nesnenin sola doğru hareket etmesini istiyorum bunu nasıl gerçekleştirebilrim.
function SolaGit(event:MouseEvent):void
{
kutu.x-=2;
} dugme1_btn.addEventListener(MouseEvent.MOUSE_CLICK,SolaGit);
Mesela böyle yaptığımda nesne sola doğru sadece bir kere hareket edicek.Ama benim istediğim butonu basılı tutunca nesnenin sürekli sola hareketetmesini sağlamak.Yardımcı olucağınızı düşünüyorum şimdiden teşekkürler.(Not=Android uygulama için lazım)
buraya tıklayarak kodları inceleyiniz.
Yada yukarıda bulunan arama kısmına klavye kontrolü yazarak biraz daha kolay olan diğer klavye kontrol kodlarını da inceleyebilirsiniz.
Merhaba hocam. Çok arayıp bir türlü cevabını bulamadığım bir sorum olacak size. Ben klavyeden örneğin ”A” tuşuna basınca kutuda ”DO” yazmasını, ”S” harfine basınca ”RE” yazmasını istiyorum ve bunu böyle bütün notaları kapsayacak şekilde devam ettirmek istiyorum. Bana bu konuda yardımcı olursanız çok sevinirim. Teşekkürler
http://www.mustafaakbal.com.tr/flash-cs5-actionscript-ile-klavyede-basilan-harflerin-kontrolu.html burayı inceleyin işinize yarayacaktır.
hocam çok aradığım ama meb yasakladığı için bir türlü bulamadığım flash 2.0 animasyon oyunu bulamıyorum hocam .klavyeden oyun yapmayı yapamıyorum yardım edinnn lütfennn haftaya projemi vereceğim
nasıl bir psikolojin var acaba merak ettim. mesajın birinde hakaret ederken bir sonraki mesajda yalvarır derecede yorumun var. onaylamadıklarımı da silmedim sistemde duruyor. bakalım daha neler olacak.
mrb, klavyeye basınca sola yada sağa gitmek okeyde , flash ta bir butona basınca klavyeye basmışım gibi nasıl oluyor , yani ben butona basıcam ama klavyeden space e basmışım gibi algılayacak bu olabilirmi 1
tam olarak anlayamadım ne demek istediğinizi? siz ekrana tuşlar çizeceksiniz onlara tıklayacaksınız ve ona göre mi işlem yapılacak?
lütfen ekleyin 2.0 ekleyin biz daha 2.0 dayız çünküüüü
2.0 kullanımıyor artık o sebeple 2.0 kodları yok. hatta flash bile bitti. Anime’ye geçiş yapacağım inşallah