Profili Göster

XML den Aldığımız Veriye Göre Mc Çoğaltımı ve Veri Atama

Ertuğrul Erkan Tarih: 17/08/2008 Yorum: 4 adet

Okunma : 467 Tutanlar: Bu yazıyı 1 kişi tuttu.

Öncelikle herkese merhaba. Herkesin bildiği gibi As2 de xml işlemleri çok az As3 e benziyor. Yeni başlayanlar sorun çekmesin diye bu dersi anlatmayı uygun gördüm.

Diyelim Xml dosyamızın yapısı şu:

.

<veri>
<bilgi>
<yazi></yazi>
</bilgi> 

<bilgi>
<yazi></yazi>
</bilgi>

</veri>

Bu dosyaya göre yapmak istediklerimiz; mc çoğaltmak ve çoğaltılan mc içindeki text lere <yazi> verisini atamak.

O zaman kodlarımız şunlar:

Öncelikle bir kare oluşturun. Üstünede yazi_txt diye bir dynamic text oluşturun. Sonra bunları mc isimli bir mc ye dönüştürün. Sağ tarafta kütüphaneden bu mc ye sağ tıklayın. Linkage ye tıklatın ve çıkan panelde Export for As ile Export in first frameyi seçin. Class kısmına mc2 yazın.

Daha sonra mc ye geri dönün frame kısmına:


MovieClip(root).mc.visible=false;
import flash.display.MovieClip;

var db_yukleyici:URLLoader = new URLLoader();
var db:XML = new XML();
db_yukleyici.addEventListener(Event.COMPLETE, db_yuklendi);
db_yukleyici.load(new URLRequest("yazi.xml"));
//Burada yazi.xml yani yukarıda verdiğim yapıyı import ediyoruz

function db_yuklendi(event:Event):void {
    db = new XML(event.target.data);
    var toplam_item:int = db.bilgi.length();
    olustur(toplam_item,db);
} //Burada da bilgi sürekli çoğaltıldığından <bilgi> kadar mc olsun diyoruz

function olustur(toplam_item:int,data:XML) {
        for (var i:uint; i<toplam_item; i++) {
          var mc:mc1 = new mc1();
             mc.name = "mc_" + i;
           mc.y = i*19;
           mc.yazi_txt.text = data.bilgi.kat.text()[i] //Burada çoğaltılan mc içindeki text e sırası ile <yazi> verisi ekliyoruz
                        addChild(mc);
    }
}

yazın.

Böylece xml den gelen verinin çokluğuna göre kütüphaneden mc yi kopyaladık ve yazi_txt ye sırası ile veri yazdık.

Örnek dosya yayınlamadım isteğe göre yapabilirim.

Herkese iyi günler

aç-kapa İçeriğin rss beslemesi kullanımda değil Yorumlar

Profili Göster
kerim doksan 28/08/2008

ben bu yapıyı çok uğraşmama rağmen çalıştıramadım.. acaba hata bendemi ??? galiba * var mc:mc1 = new mc1();* bu satırda bir yanlışlık var.

Profili Göster
Safakizilkaya 29/08/2008

Kodda kimi hatalar var.

1-) kodun başındaki

MovieClip(root).mc.visible=false

ifadesini silin. Bu ifade yalnız kalmış. false ifadesini true yapan bir blok yok.

Ayrıca zaten sahnede mc bulunmasına gerekte yok. Kod kütüphaneden mc yi sınıf adıyla çağırıp addChild(mc)metoduyla da DisplayList’e ekliyor

2-) Ertuğrul Bey, kütüphanedeki sınıfı mc2 biçiminde adlandırın demiş. Ama siz kütüphanedeki mc nin sınıf adını mc2 değil, mc1 yapın. Çünkü kodda mc2 isminde bir sınıf çağrılmıyor. mc1 çağrılıyor. Ya da kod da mc1 yazan yerleri mc2 diye düzeltin.

3-)Koddaki

mc.yazi_txt.text = data.bilgi.kat.text()[i]

yazan bölüm de hatalı.xml den bu yöntemle null bir değer almaya çalışırsanız, Avm2 size kızar.

Bu bölümü

mc.yazi_txt.text = data.bilgi[i].yazi

biçiminde değiştirin. Tabi, xml dosyasındaki <yazi></yazi> taglarının arasına da birşeyler yazın ki, program size bu taglar arasındakileri göstersin.

ActionScript’in tam hali şu şekilde olmalı

import flash.display.MovieClip; var db_yukleyici:URLLoader = new URLLoader(); var db:XML = new XML(); db_yukleyici.addEventListener(Event.COMPLETE, db_yuklendi); db_yukleyici.load(new URLRequest("test.xml")); //Burada yazi.xml yani yukarıda verdiğim yapıyı import ediyoruz function db_yuklendi(event:Event):void { db = new XML(event.target.data); var toplam_item:int = db.bilgi.length(); trace(toplam_item) olustur(toplam_item,db); } //Burada da bilgi sürekli çoğaltıldığından <bilgi> kadar mc olsun diyoruz function olustur(toplam_item:int,data:XML) { for (var i:uint; i<toplam_item; i++) { trace(i) var mc:mc1 = new mc1(); mc.name = "mc_" + i; trace (mc.name) mc.y = i*19// Buradaki rakam, mc’nin yüksekliğine eşit ya da fazla olmalıdırki mc ler üst üste binmesin mc.yazi_txt.text = data.bilgi.kat.text()[i] addChild(mc) } }

XML yapısı ise şu şekilde olmalı:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> <veri> <bilgi> <yazi>bu birinci yazı</yazi> </bilgi> <bilgi> <yazi>bu ikinci yazı</yazi> </bilgi> </veri>

Tüm bunları yaptığınızda örnek çalışır hale gelecektir.

Profili Göster
kerim doksan 30/08/2008

Evet sorunsuz çalıştı.

mc.yazi_txt.text = data.bilgi[i].yazi

Çalışan kod buloğuna burayı eklemeyi unutmuşsunuz.. Php ve as3 ile sql den resim ve bilgileri çekip bunlarıda sayfalamak için uğraşıyorum..Daha yolun başı tabikide..İşallah olur.Teşekkürler

Profili Göster
Ertuğrul Erkan 30/08/2008

Gazing hocamın sayfalama hakkında dersleri var. İsterseniz oradan bakabilirisiniz. Tek eksik xml ile birleştirmek.

yeni üyelik | şifremi unuttum

aç-kapa Toplantı Kahraman ve need4code.com Projesi Connect Toplantısı

Kahraman ve need4code.com Projesi Connect Toplantısı

Selam arkadaslar, Programlama ile uğraşanların hayatlarını kolaylaştıracak desktop ve web tabanlı ortak iki proje ile ilgili 3. toplantımızı 3Aralık...
Kategori: Toplantı

aç-kapa Yarışma Fikir10000 Dijital Pazarlama Fikir Yarışması

Fikir10000 Dijital Pazarlama Fikir Yarışması

ADTECH tarafından düzenlenen Fikir10000 yarışmasına; dijital pazarlama ile ilgili size ait olan fikrinizle katılabilir ve 10.000 YTL’lik birinci...
Kategori: Yarışma

aç-kapa Yarışma 7Dx Demoscene Party

7Dx Demoscene Party

2002 yılından beri amatör bilgisayar kültürü ile ilgilenen insanları bir araya getirmeyi hedefleyen 7DX parti serisinin bu seneki ayağı olan 7D8 Demo ...
Kategori: Yarışma

aç-kapa Eğitim Türkiye'de İnternet Konferansı - Internet Teknolojileri Derneği -22-23 Aralık ODTÜ

Türkiye'de İnternet Konferansı - Internet Teknolojileri Derneği -22-23 Aralık ODTÜ

Etkin Katılım Çağrısı Türkiye’de Internet ile ilgili grupları biraraya getirerek İnternet’i tum boyutlarıyla tanıtmak, gelistirmek, tartı...
Kategori: Eğitim

aç-kapa Konferans Bilgi Güvenliği ve Kriptoloji Konferansı

Bilgi Güvenliği ve Kriptoloji Konferansı

Önemli Tarihler: Etkinlik Tarihi : 24-26 Aralık 2008 Son Bildiri Gönderme Tarihi : 20 Ekim 2008 Bildiri Kabul Tarihi Bildirimi :...
Kategori: Konferans

üyeler Son Kahramanlar...

stats Kimler Burada? web stats

Son 1 dakika içinde MMIstanbul' da 491 (2 kayıtlı, 489 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

coldfusion mysql ubuntu
 
sponsor adobe istanbul