Türkiye Online Medya Araştırması
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 : 1320 Tutanlar: Bu yazıyı 2 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
Safa kızılkaya 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ı Özgür Yazılım ve Linux Günleri '10

Özgür Yazılım ve Linux Günleri '10

İstanbul Bilgi Üniversitesi Bilgisayar Bilimleri Bölümü ve Linux Kullanıcıları Derneği'nin 9 yıldır düzenlemekte oldukları etkinlikler bu yıl `Özgür Y...
Kategori: Toplantı

aç-kapa Yarışma 3. Uluslararası Ekslibris Yarışması: İstanbul 2010

3. Uluslararası Ekslibris Yarışması: İstanbul 2010

İstanbul Ekslibris Dernegi, Feyziye Mektepleri Vakfı ve Işık Üniversitesi, kitaplar için mülkiyet işareti olarak kabul edilen ve üzerinde estetik dege...
Kategori: Yarışma

aç-kapa Konferans Yeni Medya ve Etkileşim Konferansı 2010 - Marmara Üniversitesi

Yeni Medya ve Etkileşim Konferansı 2010 - Marmara Üniversitesi

Generally speaking, the term "New" brought about debates. We try to open up and elucidate the term "New" along with "Interact...
Kategori: Konferans

aç-kapa Konferans 3. Uluslararası Gelecek İçin Öğrenme Alanında Yenilikler Konferansı 2010: e-Öğrenme

3. Uluslararası Gelecek İçin Öğrenme Alanında Yenilikler Konferansı 2010: e-Öğrenme

Konferans ile ilgili ayrıntılı bilgiye aşağıdaki bağlantıdan ulaşabilirsiniz: http://www.futurelearning.org.tr/katilim_cagrisitr.pdf ...
Kategori: Konferans

aç-kapa Toplantı IV. ANKARA TASARIM GÜNLERİ 2010

IV. ANKARA TASARIM GÜNLERİ 2010

IV. Ankara Tasarım Günleri, seminerleri, sunumları, etkinlik tarihleri boyunca gezilebilecek tasarım sergileri, video art gösterimleri, çeşitli worksh...
Kategori: Toplantı

üyeler Son Kahramanlar...

stats Kimler Burada? web stats

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

Blog Bölümü Blogevi.com'a Taşınıyor

Selam arkadaşlar MMIstanbul'da , tasarımcı ve programcıların blog yazılarını "feedleyerek" MMIstanbul okurlarını MMIstanbul dışın ...

7.500'üncü üyemiz Cem Koç!

Neler Yapılabilir?

500 Hatası Hakkında!

Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)

coldfusion mysql ubuntu
 
sponsor adobe istanbul