View Single Post
Sponsorlu Bağlantılar
Zoque.Forum
Advertisement
Old 07.08.2006   #5 (permalink)
Dd_LynCh
 
Dd_LynCh's Avatar
 
Üyelik Tarihi: 01.11.2000
Yer: İstanbul - Ortaköy
Yaş: 25
Mesaj: 1,095
Re: xml ile swf'ye imaj yuklemek / cagirmak

Örnek XML:

Kod:
<?XML version="1.0" encoding="iso-8859-9"?>
<images>
   <image adres="1.jpg"></image>
</images>
Örnek ActionScript:

Kod:
System.useCodepage = true;
_root.resimler_xml = new XML();
_root.resimler_xml.ignoreWhite = true;
_root.resimler_xml.load("resimler.XML");

_root.createEmptyMovieClip("container", _root.getNextHighestDepth());

_root.onEnterFrame = function(){

   if(_root.resimler_xml.getBytesLoaded() == _root.resimler_xml.getBytesTotal()){
      this.onEnterFrame = null;
      adres = _root.resimler_xml.childNodes[0].childNodes[0].attributes.adres;
      _root.container.loadMovie(adres);
   }

}
flash ile XML'den veri alırken bilinmesi gereken en önemli şeyler attakiler...

node: XML'in ağaç yapısı içerisinde her bir düğüme node denir.
nodeName: Düğümün ismini verir.
childNodes: Bir düğümün içindeki alt düğümlere ulaşmak için kullanılır. Mesela...

<belge>
<insan id=1></insan>
<insan id=2></insan>
<insan id=3></insan>
</belge>


Yukarıdaki XML belgemizi ornek_xml şeklinde yüklemişsek...

trace(ornek_xml.childNodes);

...dediğimizde kök düğümü, yani belgenin tamamını trace eder. Çünkü "belge" düğümü belgenin içindeki ilk ve tek düğümdür. Bu ilk düğüme kök düğüm denir. Eğer...

trace(ornek_xml.childNodes[0].childNodes);

dersek. Trace edeceği şey...

<insan id="1"></insan>
<insan id="2"></insan>
<insan id="3"></insan>


...şeklinde olur. Bunlar kök düğümün alt düğümleridir. Alt düğümlerin de alt düğümleri olabilirdi ve olsaydı onlar da trace edilirdi ama bizim belgemizde yok. Bu alt düğümlerden istediğimiz sıradakine alttaki şekilde ulaşabiliriz...

trace(ornek_xml.childNodes[0].childNodes[0]);

Bu ifadeyle ilk düğümün yani kök düğümün alt düğümlerinin ilkini çağırdık. Sonuç...

<insan id=1></insan>

...şeklinde olacak.

firstChild, lastChild: Alt düğümlerin ilkine veya sonuncusuna ulaşma için bu komutları kullanabiliriz.

trace(ornek_xml.childNodes[0]);

ile

trace(ornek_xml.firstChild);

arasında bir fark yoktur.

parentNode: Üst düğüme ulaşmak için de bu ifadeyi kullanırız.

trace(ornek_xml.childNodes[0].firstChild.parentNode.nodeName);

Dediğimizde sonuç "belge" olur.

nextSibling, previousSibling : Aynı seviyedeki bir sonraki ve bir önceki düğümlere ulaşmak için kullanılır.

trace(ornek_xml.childNodes[0].childNodes[0].nextSibling);

Sonuç:

<insan id=2></insan>

olur.

length: Alt düğümlerin sayısını verir.

Örnek XML belgemiz için...

trace(ornek_xml.childNodes[0].childNodes.length);

...dersek. Sonuç "3" olacak.

attribute: XML belgesinde bir düğümün tag içerisinde öznitelikleri olabilir. Örneğin bizim XML belgemizde "insan" düğümlerinin "id" öznitelikleri var. Birden fazla da olabilir. Bu özniteliklere ulaşmak için bu özniteliklerin ismini bilmemiz gerekir.

trace(ornek_xml.childNodes[0].childNodes[0].attributes.id);

Sonuç "1" olur.

hasChildNodes() : Bir düğümün alt düğümlerinin olup olmadığını öğrenmek için kullanılır.

trace(ornek_xml.childNodes[0].hasChildNodes());

Sonuç "true" olacaktır.

Daha da detaya inilebilir ama temel komutlar bunlar. Altta flash-XML kombinasyonunun kullanıldığı çok güzel bir belge var. İncelemenizi öneririm.
Ekli Dosyalar (Kullanmadan önce virüs taramasından geçiriniz)
Dosya Uzantısı: zip XML_Menu.zip (229.5 KB, 66 defa görüntülendi)
Dd_LynCh şu an çevrimdışı   Mesajdan alıntı yaparak yeni bir cevap ekleyin