Zoque.Forum
Dirsek Teması:
Geri Dön Zoque.Forum » Tasarımcının Mutfağı » Flash, AIR, Flex, Silverlight » AS2:Slideshow fonksiyonu


Yanıt
 
LinkBack Seçenekler
Old 29.03.2008   #1 (permalink)
 
MGoktas's Avatar
 
Üyelik Tarihi: 26.01.2007
Yer: Kayseri
Mesaj: 332
Görsel: 17
AS2:Slideshow fonksiyonu


Merhaba
A galerileri ve B galerileri bölümüyle alt galerilerden oluşan, XML'den yüklenen bir çalışmam var.

Butonların ve başlıkların bulunduğu mc içinde XML'nin yüklendiği frame'de bir fonksiyon içinde sıralama şu şekilde:

for i: A ve B'yi döndürüyor.
for j: A ve B' nin altındaki galeri adlarını döndürüyor ve isimlerini yazdırıyor.
for f: Alt başlıklara tıklanınca fotoğrafları döndürüyor.
Fotoğraflar, küçük fotoğraflar olarak sahneye yükleniyor, küçüklere tıklanınca da büyükler bos bir mc içinde açılıyor.

Sahneye bir SlideShow butonu oluşturdum, hangi galeri açılmışsa onun fotoğraflarını belli bir aralıkla yüklemesi için. SlideShow fonksiyonunu nereye yazmalıyım? Sahnede hangi galerinin açılmış olduğunu takip ettirip ona göre o galerinin fotoğraflarını döndürmesini istiyorum. Biraz denemeler yaptım ama, hem fonksiyonu düzgün yazamadığımı hem de doğru yere yazamadığımı düşünüyorum.
Kısaca; bir slideshow fonksiyonu gerekiyor
MGoktas şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 30.03.2008   #2 (permalink)
 
kenanaltun's Avatar
 
Üyelik Tarihi: 28.03.2008
Yer: Trabzon
Mesaj: 11
Re: AS2:Slideshow fonksiyonu

Evet arkadaşlar, bu konu birçok kişinin ihtiyacı sanırım. Cevaplarınızı bekliyoruz.
kenanaltun şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 31.03.2008   #3 (permalink)
 
perplex's Avatar
 
Üyelik Tarihi: 03.01.2007
Yer: istanbul
Yaş: 28
Mesaj: 184
Re: AS2:Slideshow fonksiyonu

XML ile ilgili herşeyi sordun valla MGoktas (:

öncelikle _root 'da yaz kodunu . genel bir images array i oluştur. daha sonra for döngülerinde içten dışa doğru geçici array'ler oluşturup bunları images 'e push et .sonuçta images arrayi bütün resimlerin isimlerini içerecek çok boyutlu bir array olsun.

Ayrıca thumbnail leri olştururken her moviclip'in bir üst ve en üst galerisini belli edecek 2 ayrı property'si olsun. bunlar bize images arrayindeki index lerimizi belirtecek. sonra startSlideshow gibi ve 2 argüman alcak bi fonksiyon oluştur. bu argümanlar da release edilen movieclip'in dediğim argümanlarını alsın sonra da images[arg0][arg1] şeklinde ulaşıp o arrayin sayısı kadar resmi bir for ile döndürüp resimlerine ulaşabilirsin

kolay gelsin
perplex şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 01.04.2008   #4 (permalink)
 
MGoktas's Avatar
 
Üyelik Tarihi: 26.01.2007
Yer: Kayseri
Mesaj: 332
Görsel: 17
Re: AS2:Slideshow fonksiyonu

Bir-iki gündür konuya bakamadım, şimdi başlıyorum.
Anladığım kadarıyla oluşturmaya çalışayım, eksiklerde yine müracat edecez artık

Sormadığım şeyler kalmıştır. flash bölümünü bitirelim bir de ASP'den XML'ye veri çekme gibi aşamaları var daha bu işin
MGoktas şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 06.04.2008   #5 (permalink)
 
MGoktas's Avatar
 
Üyelik Tarihi: 26.01.2007
Yer: Kayseri
Mesaj: 332
Görsel: 17
Re: AS2:Slideshow fonksiyonu

Maalesef slideshow olayını yapamadım.
Elimde bir kaç farklı yerden indirdiğim yapılmış slideshow scriptleri var, bunlar üzerinde biraz denemeler yaptım ama, benim XML fonksiyonumu sanırım doğru tanıtamıyorum, ya da nereye yazacağımı bulamadım.

Ayrıca setInterval yöntemlerini ve global fonksiyonu hiç kullanmadım daha önce. Bu konuda da bilgim yok yani. XML ve actionscript'im şöyle:

PHP Code:
myxml = new XML();
myxml.ignoreWhite true;
myxml.load("menu.XML");
myxml.onLoad calistir;

/////
function calistir() {
    
toplam myxml.firstChild.childNodes.length;
    for (var 
0i<toplami++) {
        
buton.duplicateMovieClip("b"+i,i);//Ana başlıklarla ilgili butonları çoğaltıyorum. Siyah-Beyaz, Renkli
        
bolum _root["b"+i];
        
bolum.alt_but.yazi myxml.firstChild.childNodes[i].attributes.ad;
        for (var 
0j<sayij++) {
            var 
kat bolum.kat_buton.duplicateMovieClip("b"+jj);
            
kat kb["b"+j];
            
kat._y j*25+25;
            
kat._x 0;
            
kat.yazi myxml.firstChild.childNodes[i].childNodes[j].attributes.ad;
            
kat.foto_rakam myxml.firstChild.childNodes[i].childNodes[j].childNodes.length;
            
kat.kat_ismi myxml.firstChild.childNodes[i].childNodes[j].attributes.ad;

            
//Alt başlıklara tıklayınca ilgili bölümdeki foto sayısı kadar küçük mc çoğaltıp içine küçük fotoları yüklüyor.
            
kat.onRelease = function() {
                
kucukler_mc._visible true;
                
kat_ad.text this.kat_ismi;
                
mcl.loadClip("kat_foto1.jpg",bos);

                for (var 
0f<this.foto_rakamf++) {
                    var 
foto_no kucukler_mc.kucuk.duplicateMovieClip("kc"+ff);
                    
foto_no.hedefi myxml.firstChild.firstChild.firstChild.childNodes[f].attributes.badres;
                    
kucuk_hedef myxml.firstChild.firstChild.firstChild.childNodes[f].attributes.kadres;
                    
kucuk_yukle.loadClip(kucuk_hedef,foto_no.k_bos);

                    
//Küçük fotoğraflara tıklayınca büyük fotoğrafı bos mc'ye yüklüyorum.
                    
foto_no.onRelease = function() {
                        
mcl.loadClip(this.hedefi,bos);
                    };
                }
            };
        }
    }

PHP Code:
<?XML version="1.0" encoding="utf-8"?>
<site>

 
<bolum ad="SİYAH BEYAZ">
     <galeri ad="SB GALERİ - 1">
<foto badres="fotograflar/01.jpg" kadres="fotograflar/kucukler/01.jpg" ad="FOTO AD"></foto>
<foto badres="fotograflar/02.jpg" kadres="fotograflar/kucukler/02.jpg" ad="FOTO AD"></foto>
<foto badres="fotograflar/03.jpg" kadres="fotograflar/kucukler/03.jpg" ad="FOTO AD"></foto>
<foto badres="fotograflar/04.jpg" kadres="fotograflar/kucukler/04.jpg" ad="FOTO AD"></foto>
<foto badres="fotograflar/05.jpg" kadres="fotograflar/kucukler/05.jpg" ad="FOTO AD"></foto>
     </galeri>
     
     <galeri ad="SB GALERİ - 2">
<foto badres="fotograflar/01.jpg" kadres="fotograflar/kucukler/01.jpg" ad="FOTO AD"></foto>
<foto badres="fotograflar/02.jpg" kadres="fotograflar/kucukler/02.jpg" ad="FOTO AD"></foto>
<foto badres="fotograflar/03.jpg" kadres="fotograflar/kucukler/03.jpg" ad="FOTO AD"></foto>
<foto badres="fotograflar/04.jpg" kadres="fotograflar/kucukler/04.jpg" ad="FOTO AD"></foto>
<foto badres="fotograflar/05.jpg" kadres="fotograflar/kucukler/05.jpg" ad="FOTO AD"></foto>
     </galeri>
     
 </bolum>



<bolum ad="RENKLİ">
    <galeri ad="RENKLİ GALERİ - 1">
<foto badres="fotograflar/01.jpg" kadres="fotograflar/kucukler/01.jpg" ad="FOTO AD"></foto>
<foto badres="fotograflar/02.jpg" kadres="fotograflar/kucukler/02.jpg" ad="FOTO AD"></foto>
<foto badres="fotograflar/03.jpg" kadres="fotograflar/kucukler/03.jpg" ad="FOTO AD"></foto>
<foto badres="fotograflar/04.jpg" kadres="fotograflar/kucukler/04.jpg" ad="FOTO AD"></foto>
<foto badres="fotograflar/05.jpg" kadres="fotograflar/kucukler/05.jpg" ad="FOTO AD"></foto>
    </galeri>
    
     <galeri ad="RENKLİ GALERİ - 2">
<foto badres="fotograflar/01.jpg" kadres="fotograflar/kucukler/01.jpg" ad="FOTO AD"></foto>
<foto badres="fotograflar/02.jpg" kadres="fotograflar/kucukler/02.jpg" ad="FOTO AD"></foto>
<foto badres="fotograflar/03.jpg" kadres="fotograflar/kucukler/03.jpg" ad="FOTO AD"></foto>
<foto badres="fotograflar/04.jpg" kadres="fotograflar/kucukler/04.jpg" ad="FOTO AD"></foto>
<foto badres="fotograflar/05.jpg" kadres="fotograflar/kucukler/05.jpg" ad="FOTO AD"></foto>
     </galeri>
     
</bolum>


</site>
XML ve AS kodlarımı foruma yazarken sadeleştirdim, fonksiyonların içinde farklı komutlar da var, gereksiz olduğu için almadım buraya, belki komutlarda yanlışlık yapmışımdır sadeleştirirken, sorun yok yani o bölümlerde. Sadece slideshow fonksiyonu yapamadım, geri kalan bölüm sorunsuz çalışıyor.

Sahneye oluşturduğum bir butona tıkladığımda o anda hangi fotoğraf yüklüyse, ondan başlayarak slideshow olarak yüklenmeye devam edecek. Durdur butonuna tıkladığımda da kaldığı fotoda kalacak yine. Bu çok zorlayacaksa, mevcut galeriyi slideshow olarak baştan başlayıp sona kadar döndürsün o da yeterli.
Buraya uygun bir slideshow fonksiyonuna ihtiyacım var. Yardımcı olabilecek varsa şimdiden çok teşekkürler. Çok uzun soruymuş diyorsanız sağlık olsun ne yapalım, slideshowsuz yaparız siteyi.

Bu linkte anlatmak istediğim kaldığı yerden devam eden slideshow örneği için bakabilirsiniz.
MGoktas şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 06.04.2008   #6 (permalink)
 
perplex's Avatar
 
Üyelik Tarihi: 03.01.2007
Yer: istanbul
Yaş: 28
Mesaj: 184
Re: AS2:Slideshow fonksiyonu

selamlar

aşağıya genel bir slideshow fonksiyonunu yazıyorum . iyice anlaşılsın diye commentler de yazdım. kodlarını her zaman timeline frame 1 ' e yazmanı tavsiye ederim. bu yazdığımı da aynı şekilde.

PHP Code:
var currentImage:Number0// o anki resim
var imageArray:Array = []; // bütün resimlerin olacağı array 
var len:Number//imageArray'in length'i
var mcl:MovieClipLoader = new MovieClipLoader(); // malum

myxml = new XML();
myxml.ignoreWhite true;
myxml.load("menu.XML");
myxml.onLoad startSlideShow// malum fonksiyonlar

function startSlideShow() {
    
var 
total0 this.firstChild.childNodes.length// ana galeri sayısı

    
for (var 0i<total0i++) {
         var 
total1 this.firstChild.childNodes[i].childNodes.length;//alt galeri sayısı
         
for(j=0;j<total1;j++) {
            var 
total2 this.firstChild.childNodes[i].childNodes[j].childNodes.length// alt galerideki resimlerin sayısı
             
for(k=0;k<total2;k++) {
                   var 
obj:Object = new Object(); // geçici bir obje oluşturuyoruz. bu obje her resmin ana galerisini, üst galerisini ve ismini tutacak
                   
obj.m0 this.firstChild.childNodes[i].attributes.ad// ana galerisinin ismi
                   
obj.m1 this.firstChild.childNodes[i].childNodes[j].attributes.ad// bağlı bulunduğu bir üst galeri ismi
                   
obj.m2 this.firstChild.childNodes[i].childNodes[j].childNodes[k].attributes.adres// resmin adresi 
                   
imageArray.push(obj); // imageArray'i bu objeyle dolduruyoruz. böylece imageArray resim sayısı kadar objeyle dolmuş olacak.
             
}
          }
    }
    
len imageArray.length// arrayin uzunluğu
    
showImage(); // genel resim gösterme fonksiyonu
}

// burda bir karar vermen lazım .eğer resim sayısı azsa hepsini yükletip sonra bir daha yükleme yapmadan oynatabilirsin. ya da resimler sırayla yüklenir öyle geçer. ben sırayla yükleticem mesela.

// bir sonraki resim

function nextImage() { 
    
currentImage++; // sonraki resim için 1 arttırıyoruz değişkenimizi
    
currentImage%=len// eğer toplam resim sayısına ulaşmışsa başa dönmesi için değişkeni toplam resim sayısına böldürüp kalanına eşitliyoruz.
    
showImage(); // resmi göster
}

function 
showImage() {
    
stopInterval(); // intervali durduruyoruz. çünkü her resim yüklendikten ve gösterildikten sonra bir bekleme süresi olsun.
    
mcl.loadClip(imageArray[currentImage].m2img);//imageArray[currentImage].m2 bize o anki resmin adresini verir. img ise sahnede varsaydığım resimlerin gösterileceği movieclip
}

onLoadInit = function(mc:MovieClip) {
    
beginInterval(); 
}

function 
beginInterval() {
    var 
handle:Number setInterval(this"nextImage"3000); // this ile çalışıcağı alanın _root olduğunu belirtiyorum. nextImage fonksiyonunu 3000 miliseconds arayla çalıştırsın.
}

function 
stopInterval() {
    
clearInterval(handle); // intervali sil. 
}

mcl.addListener(this); // this ile _root ' u listener objesi olarak belirtiyorum. her movieclip sonuçta bir objedir. 
umarım yardımı olur . menü ya da buton kısımlarını da kendi çabana bırakıyorum
perplex şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 07.04.2008   #7 (permalink)
 
MGoktas's Avatar
 
Üyelik Tarihi: 26.01.2007
Yer: Kayseri
Mesaj: 332
Görsel: 17
Re: AS2:Slideshow fonksiyonu

Teşekkürler @perplex. Biraz da bununla uğraşayım
MGoktas şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 15.04.2008   #8 (permalink)
 
MGoktas's Avatar
 
Üyelik Tarihi: 26.01.2007
Yer: Kayseri
Mesaj: 332
Görsel: 17
Re: AS2:Slideshow fonksiyonu

Bir haftadır akşamları bakıyorum biraz.
Verdiğin kodlarla ilgili bir sorun var, nextImage bölümüyle mi ilgili bilmiyorum ama, birinci fotoğraf, ikinci, dördüncü, sekizinci, onaltıncı şeklinde yüklüyor. Ya da bazen daha karışık yüklüyor, çözemedim o bölümü.

Ayrıca benim kodlamamdan kaynaklanan bir sorun da, adresleri aktif olan galeri için değil de tüm galeriler için görüyordu. startslayt fonksiyonunu her çalıştırdığımda birinci galeriden başlıyor ve onu yüklemeye devam ediyordu. Diğer for döngülerinin içine aldığımda herşeyi birbirine karıştırıyorum, dolayısıyla onların dışında bir yere yazarak çözüm bulmaya çalıştım.
Herhangi bir for döngüsü oluşturmadan şu kodla fotoğrafı yükletiyorum:

PHP Code:
MCL.loadClip(myxml.firstChild.firstChild.firstChild.childNodes[currentImage].attributes.adres,bos); 
Başka bir slideshow yapılmış kodlarla senin kodların karışımından biraz da kendimden bişeyler ekleyip bir formül buldum sonuç olarak.

for in döngüsüyle küçük fotoğrafların yüklendiği mc'nin içini alıp, imageArray'a push ettim. Şöyle:

PHP Code:
for (var photos in contacts_mc) {
        var 
total contacts_mc[photos];
        
imageArray.push(total);
    } 
Böylece aktif olarak fotoğraf sayısını elde ettim. Ona göre de diğer bölümleri oluşturdum.

Devam ettiren fonksiyon:
PHP Code:
dinleyici.onLoadComplete = function(hedef_mc) {
    
show(bos,1);
    if (
currentImage == imageArray.length-2) {
        
currentImage 0;
    } else {
        
currentImage++;
    }
    
_global.beklet_int setInterval(beklet25001500currentImage);
}; 
Slaytı durdurmak için:
PHP Code:
function slayt_durdur() {
    
currentImage 0;//Her galeriye birinci fotoğraftan başlatıyorum. currentImage=currentImage yaparak kaldığı yerden başlatırsam önceki galeriden kaldığı yerden devam ediyor:)
    
imageArray.length total;//bunu yazmazsam yine galeri değiştirince bir önceki galerinin sayısını dikkate alarak devam ediyor yüklemeye...
    
MCL.removeListener(dinleyici);

Biraz tarzanca oldu galiba ama



Yardımlarınız için teşekkürler.
MGoktas şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Sponsorlu Bağlantılar
Zoque.Forum
Reklam
Yanıt

Etiketler

actionscript , flash , slideshow


 
Zoque'a hoşgeldiniz!
Zoque 27.02.1999 tarihinde yayın hayatına başlamış, paylaşıma dayalı bir oluşumdur. Tasarım, teknoloji, web, kültür ve sanat ana başlıkları altında bilgi paylaşımı ve benzer değerlere sahip katılımcıların birbirleriyle iletişime girmelerine imkan sağlar. "Az ama Öz" sloganından yola çıkarak, kaliteli ve nitelikli katılımı temel alır.

Saygın ve ciddi bir ortamda yardımlaşmak, haberleşmek, kendi bildiklerini diğer katılımcılarla paylaşmak isteyen, oluşumumuza düzenli katılımda bulunacağı inancını taşıyan konuklarımızı üye olmaya davet ediyoruz. [