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.
var currentImage:Number= 0; // 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 i = 0; i<total0; i++) {
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].m2, img);//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