Hedef Yollar
Bu bölümde anlatılacak olan "Hedef Yollar"
klipler üzerinde işlem yapabilmenin temel konusudur ve actionscript
bölümüne geçmeden evvel mutlaka tam anlamıyla kavranmalıdır.
Hedef yollar aynı bir yerin tarifini yapmaya benzer.
"bulunduğun yerden sola dön, sağda ikinci sokağın köşesindeki sarı ev"
gibi.
Bu işlem için Flash4`de kullanılan komut "Tell Target" idi. Flash5`le beraber bu yetersiz komut terkedilmiştir.
Hedef yollara ulaşmak actionscript panelini açın ve grafide gördüğünüz butona tıklayın.
Açılan iletisim kutusundan hedef yollara
ulaşacaksınız. Ortadaki pencerede sahnede mevcut film kliplerinin örnek
adları hiyerarjik koşullarla gözlenecektir.
Grafide gördüğünüz gibi tanımlanan iki hedef yol vardır:
1- Absolute (Mutlak ) hedef yollar
2- Relative (Göreceli) hedef yollar
Bu yolların ne olduğunu anlamak için daha sonra swf
dosyası da sunulacak olan aşağıdaki grafiği inceleyelim. Bu grafik swf
dosyasının ana sahnedeki ilk görüntüsüne aittir.
Lütfen dikkatle inceleyin. Ana sahnede şunları göreceksiniz:
1- Gri daire görünümünde bir film
klibi (Kliple beraber hazırlanmış sarı renkte bir buton ve mavi renkli
bir film klibi içermektedir.)
2- İçinde mor renkli bir butona sahip mavi renkli bir klip (Gri klip içine yerleştirilmiştir.)
3- Ana sahnede diğer kliplerden ayrı içinde yeşil renkte bir buton olan kırmızımsı bir film klibi
4- Yine ana sahnede serbest bir kahverengi bir buton
Özetle: Bir sahne, 3 klip, 4 buton
mevcut. Sizce kaç tane timeline bulunmaktadır? Butonlarda timeline
yoktur. 3 tane klipte birde sahnede olmak üzere 4 timeline mevcuttur.
Biz bu 4 timeline`ı sahnedeki 4 butonla idare edeceğiz.
Şimdi hedef yolları anlamak için bir benzetme yapalım:
Grafiği tekrar inceleyin. Ana sahneyi bir oda olarak
düşünelim. Bu oda içinde gri ve kırmızı renkli bir küre ve bir buton
mevcuttur.
Gri renkli küre içinde olduğumuzu varsayalım. (Biz
sarı butonu temsil ediyoruz.) Hangi kürelerin yüzeyine dokunabiliriz?
1- Gri renkli küreye
2- Bu küre içindeki mavi renkli küreye.
Kırmızı küreye ve odanın(ana sahne) yüzeyine
uzanmamız mümkün değildir. İşte bu "Göreceli Yol" dur. Bulunduğumuz
yerden ulaşabileceğimiz her klip göreceli yol üzerindedir.
Şimdi kırmızı küre içinde olduğumuzu varsayalım.
Göreceli yolla ulaşabileceğimiz tek küre kırmızı küre olacaktır. Şayet
gri klip, mavi klip veya ana timeline`a ulaşmak istiyorsanız ne
yapmalısınız?
Cevap basit. Kırmızı küre içinden çıkmalısınız.
Dışarı çıkmanın tek yolu "Mutlak Yolu" seçmektir. Mutlak yol
seçildiğinde hangi klip içinde olunursa olunsun ana sahneyi yukarıdan
kuşbakışı seyreder bir konuma kavuşacak istediğiniz klibe uzanacaksınız.
Ne zaman mutlak ne zaman göreceli yolu tercih etmeliyiz?
Grafik örneğinde anlattığımız gibi istediğimiz klip
bulunduğumuz konumda ulaşabileceğimiz bir alanda ise göreceli yol, ayrı
bir bölgede ise mutlak yol seçilmelidir. Bir örnekle açıklayalım.
Üstteki grafide kliplere mavi, gri, kirmizi örnek
adı verilmiştir. Gri klip içindeki sarı renkli butonu seçip
actionscript panelini açın ve Insert target path butonuna basıp önce
relative sonra absolute yolunu işaretleyelim. Tabloda şunları
göreceksiniz:
Soldaki grafide relative yolu işaretlenmiştir ve
hala gri küre içindesiniz. Bu nedenle this ve mavi kliplerine
ulaşabilirsiniz. Bu yolda en üst seviyedeki klip this ile ifade edilir.
Burada this ifadesi gri klibi temsil etmektedir.
Sağdaki grafide mutlak yol işaretlenmiştir ve
kuşbakışı tüm sahne elinizin altındadır. Tüm timeline`lara uzanmanız ve
komut vermeniz mümkündür. Buradaki _root terimi yine en üst timeline`ı
temsil eder. Buradaki ifade ana sahnenin timeline`ını göstermektedir.
Bu panel açıldığında mavi klibini göremeyeceksiniz Hiyerarşik olarak
gri klip içinde ve ona bağlıdır. Gri yazısının yanındaki artı butonuna
bastığınızda açılacaktır.
Artık _root ifadesinin bir mutlak yolu, this ifadesinin bir göreceli yolu ifade ettiğini öğrendiniz.
Bazı actionscript kod örnekleri arasında _parent ifadesini
görürsünüz. Bu İnsert a Target Path panelin de olmamasına rağmen yine
bir hedef yol göstergesidir. Kendisinin bir üstündeki timeline`ı işaret
eder.
Artık pratik uygulamaya geçelim. Alttaki swf dosyasını inceleyin, hiçbir butona dokunmayın.
4 butonla 4 timeline`a ayrı ayrı komut göndereceğiz. Küre benzetmesini
düşünerek hangi yolun kullanıldığını tahmin edin.
( Mutlak? Göreceli? )
1- Sarı renkli butona tıklayalım. Mavi klibi 2.frame`de durdu.
2- Yeşil renkli butona tıklayalım. Gri klip 1.frame`de durdu.
3- Kahverengi butona tıklayalım. Kırmızı klip 3.frame`de durdu.
4- Mor renkli butona tıklayalım. Ana timeline`da 2.
frame`e atlandı. Sahnede görülmese de diğer klipler bu aksiyondan
etkilenmedi.
Eğer küre benzetmesini tam anladıysanız bu sorulara hatasız cevap vermiş olmalısınız.
(Cevaplar:1- Göreceli yol 2- Mutlak yol 3- Mutlak ya da göreceli yol.
Herikisininde olma nedeni butonun serbest olup tüm timeline`lara
uzanabilmesidir. 4- Mutlak yol )
Hata yapıldıysa lütfen konuyu tekrar dikkatlice okuyun.
İpucu: Dikkatli okuyucuların
gözünden kaçmamıştır. Mutlak yol seçildiğinde tüm kliplere ulaşmamız
mümkünse göreceli yolda seçilen klibe de ulaşabiliriz. O zaman göreceli
yol yerine daima mutlak yolu seçsek hata etmiş olmamalıyız. Bu düşünce
doğrudur. Niçin göreceli yol kullanılır. Bunun basit bir nedeni vardır.
Bu klipleri başka bir sahnede parça parça kullanmak istediğinizde ana
timeline`a bağlı mutlak yol tercih edilmiş ise taşınan yerde kodlar
çalışmayacak yeniden kodları uyarlamanız gerekecektir. Şimdi bu sizi
pek ilgilendirmese de tecrübe kazanıldıkça gerekli bir işlem olduğunu
göreceksiniz. Bu nedenle kurallara uyarak göreceli yolla
ulaşabileceğiniz her klip için bu yolu tercih etmelisiniz.
Flash-MX ile beraber başlatılan ve 2004 versiyonunda da devam eden _global kodu
bazı çalışmalarda gözünüze çarpa caktır. Bu kod özellikle değişkenlere
evrensel değer atamak için kullanılır. Evrensel değerden kasdedilen
değişkene ulaşmak için _root,this veya _parent gibi kodlara gerek
kalmadan hangi klip veya scene içinde olursa olsun _global.degisken
yazarak ulaşabildiğimizi belirtmektir.Örneğin iç içe 3 klip olduğunu ve
en içteki klibe deger=1 komutunu verdiğimizi düşünelim. Bu değişkene
ana sahneden ulaşmak için:
_root.klip3.klip2.klip1.deger şeklinde yazmamamız
gerekirdi,halbuki en içteki klibe _global.deger=1 komutunu yazarsak ana
sahneden _global.deger yazarak değikene doğrudan ulaşma şansımız
doğmuştur. Bu kodu ilerleyen çalışmalarda tekrar göreceksiniz.