Profili Göster

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

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

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

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

MMIstanbul Adobe UG MMIstanbul Adobe UG

adobe user group

ColdFusion, Flex, AIR, Flash, PDF, Dreamweaver, Fireworks, Photoshop, Illustrator, iNdesign, Premiere, Soundbooth, Lightroom, InCopy, JRun, LiveCycle, Acrobat, AfterEffects, Resmi Adobe Kullanıcı Grubu.

yeni üyelik | şifremi unuttum

aç-kapa 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

aç-kapa Fuar Contemporary İstanbul Sanat Fuarı

Contemporary İstanbul Sanat Fuarı

Contemporary İstanbul Sanat Fuarı, 16-19 Ekim tarihleri arasında sanatseverlerle buluşacak. Bu yıl üçüncüsü düzenlenen fuar, İstanbul Lütfi Kırdar Ulu...
Kategori: Fuar

aç-kapa Yarışma TBD - Halıcı 15. Bilgisayarla Beste Yarışması

TBD - Halıcı 15. Bilgisayarla Beste Yarışması

TBD – Halıcı 15. Bilgisayarla Beste Yarışması TBD – Halıcı Bilgisayarla Beste Yarışması Türkiye Bilişim Derneği tarafından düzenlenen &q...
Kategori: Yarışma

aç-kapa Seminer MS Project ile Proje Yönetimi

MS Project ile Proje Yönetimi

[b]ZeruMax bilisim hizmetleri MS PROJECT İLE PROJE YÖNETİMİ Ms Project kullaniminin uygulamali ve pratik olarak anlatilacagi bu egitimi kacirmayin&#...
Kategori: Seminer

aç-kapa Yarışma Üniversiteler Arası Öğrenci Filmleri Yarışması

Üniversiteler Arası Öğrenci Filmleri Yarışması

Maltepe Üniversitesi’nin geleneksel olarak düzenlediği 6. Üniversitelerarası Öğrenci Filmleri Yarışması, kitle iletişim alanındaki yapım ve yayı...
Kategori: Yarışma

üyeler Son Kahramanlar...

stats Kimler Burada? web stats

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

scraby ...
coldfusion mysql ubuntu
 
sponsor adobe istanbul