Türkiye Online Medya Araştırması
Profili Göster

[AS3] - Sayfalama Sistemi - 1

Yağız Gürgül Tarih: 22/08/2008 Yorum: 1 adet

Okunma : 1357 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ı Özgür Yazılım ve Linux Günleri '10

Özgür Yazılım ve Linux Günleri '10

İstanbul Bilgi Üniversitesi Bilgisayar Bilimleri Bölümü ve Linux Kullanıcıları Derneği'nin 9 yıldır düzenlemekte oldukları etkinlikler bu yıl `Özgür Y...
Kategori: Toplantı

aç-kapa Yarışma 3. Uluslararası Ekslibris Yarışması: İstanbul 2010

3. Uluslararası Ekslibris Yarışması: İstanbul 2010

İstanbul Ekslibris Dernegi, Feyziye Mektepleri Vakfı ve Işık Üniversitesi, kitaplar için mülkiyet işareti olarak kabul edilen ve üzerinde estetik dege...
Kategori: Yarışma

aç-kapa Konferans Yeni Medya ve Etkileşim Konferansı 2010 - Marmara Üniversitesi

Yeni Medya ve Etkileşim Konferansı 2010 - Marmara Üniversitesi

Generally speaking, the term "New" brought about debates. We try to open up and elucidate the term "New" along with "Interact...
Kategori: Konferans

aç-kapa Konferans 3. Uluslararası Gelecek İçin Öğrenme Alanında Yenilikler Konferansı 2010: e-Öğrenme

3. Uluslararası Gelecek İçin Öğrenme Alanında Yenilikler Konferansı 2010: e-Öğrenme

Konferans ile ilgili ayrıntılı bilgiye aşağıdaki bağlantıdan ulaşabilirsiniz: http://www.futurelearning.org.tr/katilim_cagrisitr.pdf ...
Kategori: Konferans

üyeler Son Kahramanlar...

stats Kimler Burada? web stats

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

...

Blog Bölümü Blogevi.com'a Taşınıyor

Selam arkadaşlar MMIstanbul'da , tasarımcı ve programcıların blog yazılarını "feedleyerek" MMIstanbul okurlarını MMIstanbul dışın ...

7.500'üncü üyemiz Cem Koç!

Neler Yapılabilir?

500 Hatası Hakkında!

Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)

coldfusion mysql ubuntu
 
sponsor adobe istanbul