Flash XML Sayfalama (Paging) Sistemi
Yağız Gürgül Tarih: 19/05/2007 Yorum: 1 adet
Okunma : 710 Tutanlar: Bu yazıyı 4 kişi tuttu.
Evet arkadaşlar bu çalışmayla dinamik içeriklerinizi Flash, XML ve ActionScript yardımıyla nasıl sayfalayabileceğimizi göreceğiz. Özellikle web sayfalarımızda başka sitelerden aldığımız xml verilerini ya da kendi sayfamızda haber / duyuru benzeri bir uygulama yapmak için oldukça işe yarayacak bir örnek yapacağız.
Öncelikle yeni bir Flash dokümanı açın ve sahneye iki tane text box açın. Bunlardan birisi başlıgımız bir digeri de detay olacak. Bu iki text box’ı sahnede alt alta yerleştirin;
Birinci text box’ın instance name = baslik_txt İkinci text box’ın instance name = detay_txt
Bu ikisini seçin>sağtuş>convert to movieclip>ok dedikten sonra bu iki text bir movieclip içine girmiş oldu.Şimdi bunu seçin ve bunun instance name = icerik_mc olsun.
Ardından gene anasahneye iki tane buton atın.Bunlar sizin ileri geri butonlarınız olacak.İsterseniz içlerine ok çizin.
Bu iki butonun instance name’leri ileribt ve geribt olsun.
Evet tüm bu işlemlerden sonra örnek bir xml dosyası hazırlayalım.Önce yeni bir not defteri açın ve aynen şunları yazın:
Kod:
<?xml version="1.0" encoding="utf-8"?>
<icerik>
<item>
<baslik>Baslik-1</baslik>
<detay>Detay-1!</detay>
</item>
<item>
<baslik>Baslik-2</baslik>
<detay>Detay-2!</detay>
</item>
<item>
<baslik>Baslik-3</baslik>
<detay>Detay-3!</detay>
</item>
<item>
<baslik>Baslik-4</baslik>
<detay>Detay-4!</detay>
</item>
<item>
<baslik>Baslik-5</baslik>
<detay>Detay-5!</detay>
</item>
</icerik>
Evet bu belgeyi icerik.xml şeklinde kaydedin.Artık içerigimizi de oluşturdugumuza göre sayfalama sistemine gelelim.
Flashtaki birinci frame kodumuz:
Kod:
satir=2;
sutun=1;
////////////////////////
//Coded by Gazing
System.useCodepage = true;
function yukle() {
var db:XML = new XML();
_global.db=db;
db.ignoreWhite = true;
db.load("icerik.xml");
db.onLoad = function(yuklendi) {
if(yuklendi) {
duzenle();
cogalt(0);
}
}
}
////////////////////////
function duzenle() {
_global.sayfada_gosterilicek_mc = satir*sutun;
_global.sayfa_bas=0;
_global.sayfa_son=0
_global.toplam_veri = db.firstChild.childNodes.length;
_global.toplam_sayfa= Math.ceil(toplam_veri/sayfada_gosterilicek_mc);
_global.sayfa_no = 0;
}
////////////////////////
function cogalt(sayfa_no:Number) {
sayfa_bas=sayfa_no*sayfada_gosterilicek_mc;
sayfa_son=(sayfa_no*sayfada_gosterilicek_mc)+sayfada_gosterilicek_mc;
var j:Number = 0;
for(i=sayfa_bas; i<sayfa_son; i++) {
if(i<toplam_veri) {
var yeni_mc:MovieClip = icerik_mc.duplicateMovieClip("icerik_mc"+i,i);
yeni_mc._x=j%sutun*(icerik_mc._width)+icerik_mc._x;
yeni_mc._y=Math.floor(j/sutun)*(icerik_mc._height)+icerik_mc._y;
yeni_mc.baslik_txt.text = db.firstChild.childNodes[i].childNodes[0].firstChild.nodeValue.toString();
yeni_mc.detay_txt.text = db.firstChild.childNodes[i].childNodes[1].firstChild.nodeValue.toString();
j++
}
}
buton_kontrol();
}
////////////////////////
function sil() {
for(i=sayfa_bas; i<sayfa_son; i++) {
removeMovieClip(this["icerik_mc"+i]);
}
}
////////////////////////
function buton_kontrol() {
geri_bt.onRelease = function() {
sil();
sayfa_no--;
cogalt(sayfa_no);
trace(sayfa_no);
}
ileri_bt.onRelease = function() {
sil();
sayfa_no++;
cogalt(sayfa_no);
trace(sayfa_no);
}
if(sayfa_no==0) {
geri_bt.enabled = false;
geri_bt._alpha = 20;
}else{
geri_bt.enabled = true;
geri_bt._alpha = 100;
}
if(sayfa_no==toplam_sayfa-1) {
ileri_bt.enabled = false;
ileri_bt._alpha = 20;
}else{
ileri_bt.enabled = true;
ileri_bt._alpha = 100;
}
}
////////////////////////
yukle();
Tabi şimdi tüm bu kodlar ne anlama geliyor bir bakalım:
Öncelikle yukle fonksiyonun ile XML flash’a yükleniyor ve yüklendiginde sırasıyla duzenle() ve cogalt() fonksiyonları çalıştırılıyor.
Duzenle fonksiyonu ile sayfalamada kullanılacak tüm sayısal veriler _global bir deger ile oluşturuluyor.
Cogalt fonksiyonu ile öncelikle sayfano’suna göre for döngüsündeki sayfabas ve sayfa_son degerleri bulunuyor.Bundan sonra bu döngü ile movieclipler çoğaltılıyor.Mod alma fonksiyonu ile satır sütun şeklinde yerleşiyorlar.Ardından tüm bu yeni oluşturulan movieclip’lere XML’deki bilgiler aktarılıyor.
Sil fonksiyonu ile ortamdaki tüm yeni movieclipler siliniyor.Böylece her sayfa atlanışta sahne temizleniyor.
Buton kontrol ile eger sayfa baştaysa geri butonu çalışmıyor ve eger sayfa son sayfadaysa ileri buton çalışmıyor.
Evet tüm işlemler bunlar. Örnek dosyayı buradan indirebilirsiniz…
Haber
MMIstanbul Adobe UG
ColdFusion, Flex, AIR, Flash, PDF, Dreamweaver, Fireworks, Photoshop, Illustrator, iNdesign, Premiere, Soundbooth, Lightroom, InCopy, JRun, LiveCycle, Acrobat, AfterEffects, Resmi Adobe Kullanıcı Grubu.
Etkinlikler
Konferans
IBM Yazılım Zirvesi '08, Değişim Açlığı
IBM Yazılım Zirvesi '08, Değişim Açlığı
Değişim açlığı, Hungry for Change teması çerçevesinde düzenlenecek IBM Yazılım zirvesi Ankara ve İstanbulda düzenlenecek:
15 Ekim 2008
Swissotel the...
Kategori:
Konferans
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 177 (1 kayıtlı, 176 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
Neler Yapılabilir?
Yeni bir portal, 30 civarında online / offline etkinlik, seminer vb rağmen MMIstanbul sanıyoruz ki halen hakettiği ilgiyi göremedi. " ...
500 Hatası Hakkında!
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)
Ne Nedir Kampanyası Başlıyor!
Çok Merak Edenler için; MMIstanbul Geliştirme Ekibi ve Çalışma Ortamımız





birde bunun as3 ü olsa :) şahsen denedim ama yeni olduğum için baya takıldım. ama yinede teşekkürler…