Visualizzazione dei risultati da 1 a 3 su 3

Discussione: slideshow random

  1. #1

    slideshow random

    Buongiorno a tutti.

    vorrei creare un ciclo di immagini continuo senza alcuna transizione.
    Sono riuscito a caricare esternamente le immagini tramite un file xml
    questo è il codice:

    codice:
    function loadXML(loaded) {
    	if (loaded) {
    		xmlNode = this.firstChild;
    		image = [];
    		loadedImages = [];
    		total = xmlNode.childNodes.length;
    		for (i=0; i<total; i++) {
    			image[i] = xmlNode.childNodes[i].firstChild.nodeValue;
    		}
    		createClips();
    		//firstImage();
    	} else {
    		content = "file not loaded!";
    	}
    }
    xmlData = new XML();
    xmlData.ignoreWhite = true;
    xmlData.onLoad = loadXML;
    xmlData.load("img.xml");
    function createClips() {
    	for (i=0; i<total; i++) {
    		var mc = _root.fotoContainer.createEmptyMovieClip("image_mc"+i, i);
    		//trace(mc);
    		mc.loadMovie(image[i]);
    	}
    }
    adesso vorrei fare in modo che ogni 3 secondi l'immagine cambia.
    qualcuno mi può aiutare?

    grazie

  2. #2
    Io ho fatto così.
    Ho un array creato dall'xml con i nomi delle foto

    c'è un interval che chiama una funzione che fa questo

    var nomef:String=ArrFotoFx.splice(Math.round(Math.rand om()*(ArrFotoFx.length-1)),1)

    che non fa altro che pescare a random un indice dall'array ArrFotoFx.

    (lo splice agisce sull'array, per cui devi tenertene una copia originale, per ripristinarlo quando ArrFotoFx.lenght=0)

  3. #3
    In passato ho fatto un filmato simile...
    In pratica come ha scritto Stan devi estrarre da un array usando Math.random.
    Volendo modificare il tuo script, visto che esiste già un array che contiene le immagini, verrebbe una cosa del genere:

    codice:
    function loadXML(loaded){
    if (loaded) {
    xmlNode = this.firstChild;
    image = [];
    loadedImages = [];
    total = xmlNode.childNodes.length;
    for (i=0; i<total; i++) {
    image[i] = xmlNode.childNodes[i].firstChild.nodeValue;
    }
    createClips();
    //firstImage();
    } else {
    content = "file not loaded!";
    }
    }
    xmlData = new XML();
    xmlData.ignoreWhite = true;
    xmlData.onLoad = loadXML;
    xmlData.load("img.xml");
    
    function vai(){
    var n=setInterval(function(){
    var s=image[Math.floor(Math.random()*image.length)];
    var mc = _root.fotoContainer.createEmptyMovieClip(image_mc, 100);
    mc.loadMovie(s);
    }
    ,3000);
    }
    createClips=vai;
    In questo modo ho piazzato un mc sul livello 100 nel clip fotoContainer.
    Non ho provato, ma se copi e incolli dovrebbe caricare random ogni 3 secondi.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.