Tree Component


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.

DOSYAYI İNDİR

Uygulama:

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:

<?xml version="1.0"?>
<node label = "Tıklayınız">
    <node label = "Bir frame seçin">
        <node label = "2.frame" veri="2" klas="a" />
        <node label = "3.frame" veri="3" klas="a"/>
        <node label = "4.frame" veri="4" klas="a"/>
    </node>

    <node label = "Bir link seçin">
        <node label = "Flashdersleri" veri="http://www.flashdersleri.com" klas="b"/>
        <node label = "Flashokulu" veri="http://www.flashokulu.com" klas="b"/>
        <node label = "Flashkit" veri="http://www.flashkit.com" klas="b"/>
        <node label = "Macromedia" veri="http://www.macromedia.com" klas="b"/>
    </node>
</node>

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 );