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.