Animasyonunuzda birden fazla koşulunuz varsa
tek bir else ifadesi yeterli olmayacaktır. Koşullu deyimlerin
dallandırılmasına ihtiyacınız vardır. Bu örneğimizde böceğin hareketi
farklı tuş basımlarına göre sağlandığından Key
nesnesi ve dallandırılan koşullu deyimler (else if)
kullandık.
NOT= Yukardaki animasyonda çalışmayı
tetiklemek için sahneye bir kez boş tıklama yapın sonra klavye
tuşlarını kullanın.
1- Bir film klibi oluşturalım
ve sahneye yerleştirerek adlandıralım.(bocek)
2- Film klibini seçip actionscript panelini açalım.onClipEvent(enterFrame)klip
olayını seçelim.Statament-->Condutions/Loops-->
If komutunu girelim. Condition alanına Built in Classes-->Movie-->Key-->Methods-->isDown
komutunu girelim. Key Code alanına Key.UP yazalım.
(key.isDown(Key.UP) ).Bu komut yukarı tuşa basılıp basılmadığını
kontrol eder.
3- setProperty komutunu girelim.
Property alanına _rotation, target alanına this,
Value alanına 0 yazın.TekrarsetProperty komutunu girin. Property alanına
_y, target alanına this, value
alanına this._y -30 yazalım.
Buraya kadar şunları yaptık:
Önce klavyeden üst ok tuşuna basılmasını denetledik. Şayet basılmışsa
film klibinin rotasyon yapmamasını ve 30 piksel y yönünde yani
yukarı hareketini sağladık. Eksi yazılmasının nedeni y eksenin
yukarı doğru değer kaybetmesi aşağı doğru değer kazanmasıdır.
Şimdi aynı işlemi diğer 3 yön tuşu içinde yapacağız.
4- else if komutunu girin. Yani
üst ok tuşuna basılmamışsa şunları yapın diyeceğiz. Condition
alanına Key.isDown(Key.RIGHT) yazın.3. şıktaki
gibi iki kez setproperty komutunu girin. İlkine
rotasyon değeri olarak 90, ikincisinde _x
eksenini seçin ve value alanına this._x +30
yazın. + yazma nedenimiz x ekseninin sağa doğru değerinin artması,
sola doğru değerinin azalmasındandır.
Bu komutlarla önce üst ok tuşuna basılıp basılmadığı
araştırıldı.Şayet basılmışsa dönme hareketi olmadan 30 piksel
yukarı hareketi sağlandı. Şayet üst yön tuşuna basılmayıp sağ
yön tuşuna basılmışsa böceğin sağa doğru 90 derece dönmesi ve
30 piksel ilerlemesi sağlandı.
5- Tekrar else if
komutunu girelim. Condition alanına Key.isDown(Key.DOWN)
yazalım , iki kez setProperty komutunu
ekleyelim.İlkinde değer alanına 180, ikincisinde
ise this._y +30 yazalım. Bu tuşa basıldığında
böcek 180 derece dönecek ve aşağıya 30 piksel ilerleyecektir.
6- Aynı işlemi sol yön tuşu
içinde yapalım. Else if komutunu verelim. Condition
alanına Key.isDown(Key.LEFT) yazalım. Yine iki
kez setproperty komutunu verelim. İlkinde rotasyon
değeri olarak 270 yazalım. İkincisinde
this._x -30 ifadesini değer alanına yazalım. Bu tuşa
başıldığında böcek 270 derece dönecek ve 30 piksel sola hareket
edecektir.
Komutlar karışık görülmesine rağmen son derece
basit bir mantığı vardır.
Peki biz sadece 4 yönde değilde oblik
hareket etmesini istersek yani 8 ayrı yönde hareket
etmesini istersek ne yapmalıyız? Kodlar çok uzayacakta
olsa aslında işlem basittir.
Burada birleştirme operatörünü kullanacağız.
Bu AND(ve) manasına gelen && işaretidir.
Şimdi kodları görelim:
Lütfen kodların bolluğu kafanızı karıştırmasın. Sıra ile
inceleyelim.
İlk 5 satıra bakın. Kullanıcı aynı anda üst ve
sağ yön tuşuna bastığında (bu ikili tuşa basılmasını denetleyen
&& komutudur) böcek 45 derece sağa dönecek ve 15 piksel
sağ oblik hareketi sağlayacaktır. Yukarı hareket y eksenini 15
piksel azalttığından eksi değeri, x eksenini arttırdığından artı
değeri kullanılmıştır. Else if deyimini ekleyerek aynı işlemleri
diğer 3 oblik hareket içinde yapın. Geriye kalan sol, sağ, yukarı
ve aşağı hareketleri zaten örneğimizde görmüştünüz.
Yukardaki kodları kopyalayarak film klibimize
atadığınız komutların olduğu alana yapıştırın. (Önceki kodları
sildikten sonra). Üst-sağ yön tuşlarına aynı anda bastğınızda
böceğin sağ-üste oblik hareket ettiğini, alt-sağ yön tuşlarına
beraberce bastığınızda sağ-alta oblik hareket,sol-alta bastığınızda
sol-alta oblik hareket, sol-üst yön tuşuna bastığınızda sol-üste
oblik hareket ettiğini göreceksiniz.