[AS3] - Sayfalama Sistemi - 1
Yağız Gürgül Tarih: 22/08/2008 Yorum: 1 adet
Okunma : 443 Tutanlar: Bu yazıyı 5 kişi tuttu.
Bugünlerde bir sürü soru geliyor bana sayfalama sistemi nasıl yapılır diye. Ben de uzun bir ders/makale yazıp cevabı vermek istedim.
Başlıkta [AS3] yazmama rağmen aslında bu ders sayflamanın mantığını anlatıyor. Ben ilk sayfalama sistemini nasıl yaparım diye düşündüğümde aklıma bu yöntem geldi. Umarım size de yardımcı olur.
Öncelikle for döngülerinden başlayalım. Flash ile kodlamada olmazsa olmazlardan biri olan for döngüsü sayfalama sisteminin de temel taşı denebilir.
Şimdi şu kodu bir çalıştıralım:
var i:int=0;
for(i=0; i<10; i++) {
trace(i);
}
Test ettiğinizde ekrana 0,1,2,3,4,5,6,7,8,9 sayıları gelecektir. Kalın olarak yazdığım yere dikkat edin. Gördüğünüz gibi döngüyü 0’dan başlatıp 10’a gelmeden durdurduk.
Şimdi şu kodu deneyelim:
var i:int=0;
for(i=10; i<20; i++) {
trace(i);
}
Test ettiğinizde ekrana 10,11,12,13,14,15,16,17,18,19 sayıları gelecektir. Düşününki ilk kod sonuçları birinci sayfanın ürünleri, ikinci kod sonuçları da ikinci sayfanın ürünleri.
Yani:
1.
Sayfa:
0,1,2,3,4,5,6,7,8,9
2.
Sayfa:
10,11,12,13,14,15,16,17,18,19
Gördüğünüz gibi her sayfada 10 tane ürün var. Kalın olarak yazılan yerler her sayfanın başlangıç ve bitiş ürünlerinin id numarısı gibi düşünelim.
Buradan çıkardığımız sonuç:
Birinci sayfanın başlangıcı - 0
Birinci sayfanın sonu - 9
İkinci sayfanın başlangıcı - 10
İkinci sayfanın sonu - 19
İşte kilit noktası burası arkadaşlar :) Sayfalama sisteminde yapacağımız tek şey for döngsünün başlangıç ve sonunu sayfa numarasına göre ayarlamak.
Şu kodu çalıştıralım:
var for_bas:int=0;
var for_son:int=10;
//
var i:int=0;
for(i=for_bas; i<for_son; i++) {
trace(i);
}
Gene 10 tane ürün göreceksiniz. Şu matematik işlemini inceleyelim:
for_son-for_bas=10
Gördüğünüz gibi for döngüsünün sonundan for döngüsünün başını çıkartırsak bize sahnede gösterilecek ürün sayısını verir.
Ozaman matematik işlemimizi:
for_son-for_bas=sayfaUrunSayisi
for_son=sayfaUrunSayisi+for_bas
Şekline getirebiliriz. Bu durumda kodumuz:
var sayfaUrunSayisi:int=10
//
var for_Bas:int=0;
var for_Son:int=sayfaUrunSayisi+for_Bas
//
var i:int=0;
for(i=for_Bas; i<for_Son; i++) {
trace(i);
}
Çaltıştırdığınızda gene 10 tane ürün görüceksiniz. Ve bu 10 ürün 1. sayfadır. Peki biz ikinci sayfaya nasıl geçicez? Bunun için gene matematik konuşuyor:
İkinci sayfa için:
for_bas=10, for_son=20 olmalı. O zaman:
sayfaUrunSayisi=10
for_bas = sayfaUrunSayisi * 1 = 10
for_son = sayfaUrunSayisi + for_bas = 20
Gördüğünüz gibi denklemimizi kurduk. Ve işte asıl olay oradaki 1 sayısıdır. Aslında oradaki 1 sayısı bizim istediğimiz sayfa numarasını temsil ediyor.
Ozaman:
for_bas = sayfaUrunSayisi * sayfaNumarasi
for_son = sayfaUrunSayisi + for_bas
Ve bu matematik işlemini koda çevirirsek:
var sayfaUrunSayisi:int=10
var sayfaNumarasi:int=5;
//
var for_bas:int = sayfaUrunSayisi * sayfaNumarasi
var for_son:int = sayfaUrunSayisi + for_bas
//
var i:int=0;
for(i=for_bas; i<for_son; i++) {
trace(i);
}
Test ettiğinizde size 6. sayfanın sonuçlarını vericektir. Denemek için sayfaNumarasi değişkeninin değerini değiştirebilirsiniz.
Şimdi bunu fonksiyona çevirelim:
var sayfaUrunSayisi:int=10
//
var for_bas:int;
var for_son:int;
//
var i:int=0;
//
function sayfaGit(a:int) {
for_bas = sayfaUrunSayisi * a
for_son = sayfaUrunSayisi + for_bas
dongu();
}
function dongu() {
for(i=for_bas; i<for_son; i++) {
trace(i);
}
}
/////
sayfaGit(5);
////
Tek yapmanız gereken sayfaGit fonksiyonunun parametresini değiştirmek.
Evet ilk dersimiz bu şekilde bitiyor :) Size basitçe mantığı anlatmaya çalıştım. Bundan sonraki dersimde bu sistemi XML ile birleşitircez.
Kolay gelsin…
Haber
Etkinlikler
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ı
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 383 (3 kayıtlı, 380 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









çok teşekkürler. bu sayede mantığını anladık. diğer dersinizi sabırsızlıkla bekliyorum.