Dallanma tarzı yapılan bu çalışmada 2 örnek birarada
işlenmiştir.( Seçilen bir kareden timeline üzerinde
hareket etme ve bir adrese yönlenme) Veriler
swf içine bir xml dosyasından alınacaktır.
1- Sahneye bir tree component
çekip bırakalım ve instance name alanına tree
yazalım.Çalışmamızda biz 2,3 ve 4 . ka reye birer resim ekledik.Amacımız
tree componentte ilgili alana tıkladığımızda bu karelere atlamaktır.
2- Çalışmamızı hazırladıktan
sonra kodlara geçmeden evvel verileri oluşturacağımız xml dosyasını
hazırlayalım:
Notepad programını açalım ve buraya şu kodları
yazalım:
Kodlarda gördüğünüz gibi ana nodun adı tıklayınız
şeklinde alınacaktır. Bu ana noda 2 child nod
bağlıdır.Bir frame seçin ve bir link
seçin şeklinde.Ana noda tıklanınca bu 2 alt grup
açılacaktır. Bunların alt grubu içinde ilkine 3
ikincisine 4 alt nod eklenmiştir.Her alt grup
nod için 3 değer alınmaktadır. Bunlar sahnede
gözlenen label adları ve veri
,klas adında 2 değişkene ait değerlerdir.Örneğin
Bir link seçin nodundaki elemanlar sahnede şu şekilde kullanılacaklardır: Label kısmına yazılan isim sahnede gözüken isim
olacaktır. Veri kısmındaki değer bir url adresidir
ve isim üzerine tıklandığında getURL alanında bu değer kullanılacaktır.
Klas değişkeninin eklenme nedeni çalışmada 2
ayrı özelliğin kullanılmasındandır. İlk nodda veri değeri gidilecek
frame numarası için ikinci nodda ise gidilecek
adres için kullanılacaktır. İşte bu farkı flasha
tanıtabilmek için klas değişkeninde a ve b
değerleri kullanılmıştır. Bir if else dallanması
ile şayet klas==a ise bir frame geçişi yapılacağı
klas==b ise bir adrese yönlenileceği flasha öğretilmiş
olacaktır. Şayet siz çalışmanızda sadece frame veya url yönlenmesi
yapacaksanız bu klas değişkenini xml dosyasına yazmanıza gerek
olmayacaktır.
Bu dosyamızı tree.xml adı ile
kaydedelim. Şayet değerler içinde Türkçe karakter kullanacaksanız
bu xml dosyasını UTF-8 formatında kaydetmelisiniz.Aksi
takdirde Türkçe karakter kullanma şansınız olmayacaktır.
3- Xml dosyamızı hallettiğimize
göre şimdi flash çalışmamızı açabiliriz. Elemanlarımızı oluşturmuştuk.1.kareye
şu komutları atayalım:
stop();
//yeni bir xml dosyası oluşturuluyor
veriler = new XML();
//bu dosyadaki boş alanlar hataya sebep
vermemesi için temizleniyor
veriler.ignoreWhite = true;
//xml dosyasından veriler yükleniyor
veriler.load("tree.xml");
//tree komponent içine bu değişken ve değerleri
atanıyor
veriler.onLoad = function(){
tree.dataProvider = veriler;
}
// yeni bir nesne oluşturuluyor
treeListe = new Object();
//Tıklanan alanın her değişimine tepki vermesi
için yeni bir fonksiyon başlatılıyor
treeListe.change = function ( eventObject ){
//secilenNod adlı bir değişkene xml dosyasından
o noda ait veri değeri atanıyor.
var secilenNod = eventObject.target.selectedNode.attributes.veri;
//secilenKlas adlı bir değişkene xml dosyasından
o noda ait klas değeri atanıyor
secilenklas=eventObject.target.selectedNode.attributes.klas;
//şayet klas değeri a ise secilenNod değeri
bir frame numarası,b ise bir adres olarak kullanılıyor
if(secilenklas=="a"){
_root.gotoAndStop(secilenNod);
} else if(secilenklas=="b"){
getURL(secilenNod,"_blank")
}
}
//ve bu kodlar her tıklama ile yapılan değişimleri
kapsamak üzere komponente atanıyor
tree.addEventListener ( "change", treeListe );