Profili Göster

[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…

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

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

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

yeni üyelik | şifremi unuttum

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

aç-kapa Yarışma Fikir10000 Dijital Pazarlama Fikir Yarışması

Fikir10000 Dijital Pazarlama Fikir Yarışması

ADTECH tarafından düzenlenen Fikir10000 yarışmasına; dijital pazarlama ile ilgili size ait olan fikrinizle katılabilir ve 10.000 YTL’lik birinci...
Kategori: Yarışma

aç-kapa Yarışma 7Dx Demoscene Party

7Dx Demoscene Party

2002 yılından beri amatör bilgisayar kültürü ile ilgilenen insanları bir araya getirmeyi hedefleyen 7DX parti serisinin bu seneki ayağı olan 7D8 Demo ...
Kategori: Yarışma

aç-kapa Eğitim Türkiye'de İnternet Konferansı - Internet Teknolojileri Derneği -22-23 Aralık ODTÜ

Türkiye'de İnternet Konferansı - Internet Teknolojileri Derneği -22-23 Aralık ODTÜ

Etkin Katılım Çağrısı Türkiye’de Internet ile ilgili grupları biraraya getirerek İnternet’i tum boyutlarıyla tanıtmak, gelistirmek, tartı...
Kategori: Eğitim

aç-kapa Konferans Bilgi Güvenliği ve Kriptoloji Konferansı

Bilgi Güvenliği ve Kriptoloji Konferansı

Önemli Tarihler: Etkinlik Tarihi : 24-26 Aralık 2008 Son Bildiri Gönderme Tarihi : 20 Ekim 2008 Bildiri Kabul Tarihi Bildirimi :...
Kategori: Konferans

üyeler Son Kahramanlar...

stats Kimler Burada? web stats

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

coldfusion mysql ubuntu
 
sponsor adobe istanbul