Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 37
  1. #1
    Utente di HTML.it L'avatar di Emmy
    Registrato dal
    Jan 2008
    Messaggi
    23

    Immagini dinamiche in dissolvenza/controdissolvenza con preloader

    Salve a tutti! Sono nuova su questo forum e non ho ancora molta dimestichezza con l'ActionScript.
    Avrei bisogno che qualche genietto mi aiutasse

    Devo realizzare una serie di slide di immagini contenute in una cartella e numerate in successione (es: img1.jpg, img2.jpg, ecc...) che vengano caricate tutte quelle presenti in quella cartella e che ciclino in maniera automatica in dissolvenza/controdissolvenza, cioè mentre si dossolve la prima si forma la seconda rimanendo per circa 5 secondi per poi ricominciare dalla prima in maniera ciclica.
    Un altro problema è che si tratta di immagini belle grandi (910x510) e quindi occorrerebbe un preloader grafico che poi io riadatterei graficamente.
    Ho provato a cercare qualcosa di bellefatto in giro ma non ho trovato nulla del genere
    Mi potete aiutare?

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    a suo tempo realizzai uno slideshow preticamente come l'hai descritto... ma senza preload grafico... trovi il codice a questo indirizzo: http://www.v2online.it/articoli/slideshow.html
    (il codice a due movieclip e quello dell'update)

  3. #3
    Utente di HTML.it L'avatar di Emmy
    Registrato dal
    Jan 2008
    Messaggi
    23
    lo sto provando, può essere una base per lavorare, ma quello che manca di più importante è l'analisi delle immagini contenute nella cartella, ad esempio terminate le mie prime tre non ricomincia da capo e va a cercarsi una quarta, quinta, ecc...
    Non ci sono commenti nel codice e non mi ci districo bene, si può modificare in quel senso?

  4. #4
    Originariamente inviato da Emmy
    lo sto provando, può essere una base per lavorare, ma quello che manca di più importante è l'analisi delle immagini contenute nella cartella, ad esempio terminate le mie prime tre non ricomincia da capo e va a cercarsi una quarta, quinta, ecc...
    Non ci sono commenti nel codice e non mi ci districo bene, si può modificare in quel senso?
    beh vedi bene xchè dovrebbe già fare quello che dici tu ...infatti dal commento

    >In pratica il codice non fa altro che verificare il caricamento delle immagini grazie alla classe MovieClipLoader, e nel caso questo caricamento non avvenga e quindi si riceva l'errore di caricamento, riporta il contantore index a 1 e fa ricominciare lo slide dalla prima immagine



    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da Emmy
    lo sto provando, può essere una base per lavorare, ma quello che manca di più importante è l'analisi delle immagini contenute nella cartella, ad esempio terminate le mie prime tre non ricomincia da capo e va a cercarsi una quarta, quinta, ecc...
    Non ci sono commenti nel codice e non mi ci districo bene, si può modificare in quel senso?
    come detto da crescenzo, al di là del codice meglio leggere anche l'intero articolo

  6. #6
    Utente di HTML.it L'avatar di Emmy
    Registrato dal
    Jan 2008
    Messaggi
    23
    Ok, grazie! ora mi sono schiarita un pò di idee.
    Per il preloader avete qualche suggerimento?

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    il preloader può essere inserito nello stesso contesto facilmente, visto che abbiamo a che fare con la classe MovieClipLoader che permette di monitorare i vari stati di caricamento delle immagini
    in particolare nel codice va aggiunta la funzione "onLoadProgress", riprendendo il codice di esempio, avremo una cosa del genere:

    codice:
    var interceptMovieClip:Function = function (target_mc:MovieClip):MovieClip {
    	var temp:MovieClip = (target_mc._name == "firstMC") ? secondMC : firstMC;
    	return temp;
    };
    var slideShow:Function = function (target:MovieClip, index:Number, shifting:Number) {
    	var other = interceptMovieClip(target);
    	var int_index = index;
    	var mclo:MovieClipLoader = new MovieClipLoader();
    	var mcli:Object = new Object();
    	mcli.onLoadProgress = function (target:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
    		trace("caricati "+bytesLoaded+" di "+bytesTotal);
    	}
    	mcli.onLoadError = function(target:MovieClip, errorCode:String) {
    		if (errorCode == "URLNotFound") {
    			slideShow(target, index, shifting);
    		}
    	};
    	mcli.onLoadInit = function(target:MovieClip):Void  {
    		trace("img/"+int_index+".jpg");
    		int_index += 2;
    		var t:Object = new mx.transitions.Tween(target, "_alpha", mx.transitions.easing.None.easeNone, 0, 100, .5, true);
    		t.onMotionFinished = function() {
    			var a = setInterval(function () {
    				clearInterval(a);
    				var t:Object = new mx.transitions.Tween(target, "_alpha", mx.transitions.easing.None.easeNone, 100, 0, .5, true);
    				t.onMotionFinished = function() {
    					mclo.loadClip("img/"+int_index+".jpg", target);
    					target.swapDepths(other);
    				};
    			}, shifting*1000);
    		};
    	};
    	mclo.addListener(mcli);
    	mclo.loadClip("img/"+int_index+".jpg", target);
    };
    //
    var time_to_slide:Number = 5;
    var firstMC:MovieClip = _level0.createEmptyMovieClip("firstMC", 1);
    var index1:Number = 1;
    var secondMC:MovieClip = _level0.createEmptyMovieClip("secondMC", 2);
    var index2:Number = 2;
    slideShow(firstMC, index1, time_to_slide*2);
    setTimeout(slideShow, 5000, secondMC, index2, time_to_slide*2);

  8. #8
    Utente di HTML.it L'avatar di Emmy
    Registrato dal
    Jan 2008
    Messaggi
    23
    Ma sei un genio! Funziona perfettamente.

    Grazie

    Un bacio, anzi 1000!

  9. #9
    Utente di HTML.it L'avatar di Emmy
    Registrato dal
    Jan 2008
    Messaggi
    23
    Un'ultima cosa:
    come posso inserire tutto il meccanismo in una mc? Ho provato con la funzione
    loadMovieNum("slides.swf", "mcslides");
    e anche con
    loadMovie("slides.swf", _level1.mcslides);
    ma non parte l'animazione

  10. #10
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    perchè i due clip vengono creati su _level0, ed evidentemente non vengono trovati, prova a sostituire le ultime righe con queste:

    var time_to_slide:Number = 5;
    var firstMC:MovieClip = this.createEmptyMovieClip("firstMC", 1);
    var index1:Number = 1;
    var secondMC:MovieClip = this.createEmptyMovieClip("secondMC", 2);
    var index2:Number = 2;
    slideShow(firstMC, index1, time_to_slide*2);
    setTimeout(slideShow, 5000, secondMC, index2, time_to_slide*2);

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.