skift billeder random
Hej alle...Har et XML slideshow...
Sådan som det fungerer nu er at der bliver loaded 4 billeder ind af gangen, og de fader så op, når de er faded ind, så kommer der 4 nye som erstatter de der er i forvejen, også fader de ind.....
Det jeg gerne vil have, men ikke kan få til at fungere er at når de første 4 billeder er kommet ind, skifter der kun 1 af gangen, gerne random om hvilket af de 4 billeder der skifter...
Scriptet kan hentes på www.playart.dk/toppics.rar
Så er det lidt nemmere at forstå hvordan det ser ud....
Anyway mit AS i min main timeline ser sådanne ud:
_root.p = 0;
//Hent XML
function loadXML(loaded) {
//Hvis XML er Loaded/Hentet
if (loaded) {
xmlNode = this.firstChild;
image1 = [];
image2 = [];
image3 = [];
image4 = [];
var total = xmlNode.childNodes.length;
for (i=0; i<total; i++) {
image1[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
image2[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
image3[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
image4[i] = xmlNode.childNodes[i].childNodes[3].firstChild.nodeValue;
}
upDatePic();
} else {
content = "file not loaded!";
}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
//xmlData.load("/site/utils/toppics.asp?doc_id="+doc_id);
xmlData.load("images.xml");
//Preload til billede
this.onEnterFrame = function() {
filesize = picture1.getBytesTotal();
loaded = picture1.getBytesLoaded();
preloader._visible = true;
if (loaded != filesize) {
preloader.preload_bar._xscale = 100*loaded/filesize;
} else {
preloader._visible = false;
//Hvis billede har en alpha værdi mindre end 0, så fade ind til 100
if (picture1._alpha<100) {
picture1._alpha += 3; //Hastighed, jo størrere, jo hurtige vil billedet bliver vist
}
if (picture2._alpha<100) {
picture2._alpha += 3; //Hastighed, jo størrere, jo hurtige vil billedet bliver vist
}
if (picture3._alpha<100) {
picture3._alpha += 3; //Hastighed, jo størrere, jo hurtige vil billedet bliver vist
}
if (picture4._alpha<100) {
picture4._alpha += 3; //Hastighed, jo størrere, jo hurtige vil billedet bliver vist
}
}
}
//Opdaterer billede (Henter nyt billede)
function upDatePic (){
if (loaded == filesize) {
picture1._alpha = 0;
picture1.loadMovie(image1[p],1);
picture2._alpha = 0;
picture2.loadMovie(image2[p],2);
picture3._alpha = 0;
picture3.loadMovie(image3[p],3);
picture4._alpha = 0;
picture4.loadMovie(image4[p],4);
picture_num();
}
}
function picture_num() {
current_pos = p+1;
pos_txt = current_pos+" / "+total;
}
-------------------------------------------
Så har jeg et movieClip hvor der ligger et AS layer inde i det, hvor AS ser sådanne ud:
if (_root.p < (_root.total-1)) {
_root.p = _root.p += 1;
} else {
_root.p = 0;
}
_root.upDatePic();
--------------------------------------------------
Håber der er nogle der kan hjælpe, for synes sq efterhånden jeg har prøvet alt jeg kender til :)
