16 Mayıs 2010 Pazar

Action Script 3.0 ile Xml'den Resim Çekme

Öncelikle şunu belirtmeliyim ki dün internette yaptığım araştırmalar sonucu bazı konularda (özellikle kodlama) ne kadar kopyacı olduğumuzu, kopyacılıktan da öte bulduğumuz bir kodu kontrol etmeden sitemizdeki kullanıcıların hizmetine sunduğumuzu gördüm. Aynı yanlış kodu türkçe sayfalarda arama yaptığımızda hemen hemen 2 sideden birinde bulmamız olası. Neyse lafı uzatmadan çalışan kodları vereyim. Umarım faydalı olur.

İşte boş bir As 3.0 flash çalışma sayfası oluşturarak başlayalım. Sonra tablomuza yeni bir layer ekleyelim. Bu layer'ı action script kodlarımız için kullanacağız. Actions layer'ımızın ilk frame'ine gelip actions penceremizi açalım.

Şimdi ilk olarak yeni bir movie clip oluşturalım. Resmimizi / Resimlerimizi bu movie clip içine yerleştireceğiz.

var backgroundMC:MovieClip=new MovieClip();


Şimdi mc'mizin yerleşim yerine bakalım. Ben kodumda arka plan çektiğim için x ve y değerlerini 0 yaptım.

backgroundMC.x=0;
backgroundMC.y=0;


Şimdi mc'mizi ekleyelim

addChild(backgroundMC);


Şimdi bir adet de imageLoader oluşturalım.

var imageLoader:Loader=new Loader();


Xml ile bağlantı kurmaya geldi sıra.

var myxml:XML=new XML();
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.load(new URLRequest("xml_dosya_adı.xml"));


Xml yüklendi fonksiyonumuzu ekliyoruz.

xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);


Xml başarıyla yüklendiğinde, harici xml deki verileri kendi oluşturduğumuz myxml objesine aktarıp buradan nodelardaki image url mizi loader ile mc'mize aktaracağız. İşte kodlar

function xmlLoaded(event:Event):void
{
myxml = XML(event.target.data);

var i=0;
imageLoader.load(new URLRequest(myxml.bilgi[i].img));
backgroundMC.addChild(imageLoader);
}


Şimdi örnek xml kodlarımıza bakalım:

root

bilgi
img arkaplan.jpg /img
/bilgi

/root


Böylece oluşturduğumuz movie clip e xml den aldığımız resim urlsini yüklüyoruz. Eğer bir resim galeri oluşturacaksanız xml başarıyla yüklendikten sonra bir for döngüsü ile tüm node'lardaki url leri alarak yeni image loader oluşturup tek tek load etmeniz mümkün.

Umarım bir gün kopyacılıktan kurtuluruz. Herkese kolay gelsin.

tyln

Hiç yorum yok:

Yorum Gönder