Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Applicare filtri

  1. #1
    Utente di HTML.it L'avatar di pavle
    Registrato dal
    Nov 2007
    Messaggi
    10

    Applicare filtri

    Ciao a tutti ragazzi,
    rovistando nella guida di flash 8 ho scoperto i filtri.
    Ho un'animazione carina ma non funziona.

    Il problema è questo:

    ho più immagini che carico dinamicamente così:
    codice:
    this.createEmptyMovieClip("holder_mc", 10);
    var i:Number;
    for (i=0; i<3; i++) {
    	var my_mcl:MovieClipLoader;
    	this["my_mcl"+i] = new MovieClipLoader();
    	this["my_mcl"+i].loadClip(("img/image"+i+".jpg"), holder_mc.createEmptyMovieClip(("img_mc"+i), i));
    	holder_mc["img_mc"+i]._x = 180*i;
    }
    per ogni immagine vorrei che "compaia", si "sfochi" e sparisca, quindi la mia funzione si ripeta per l'immagine successiva.

    Ho scritto la funzione che applica i filtri allo stesso movieClip così:
    codice:
    function transition(target_mc:MovieClip) {
    	var mcl_obj:Object = new Object();
    	var sf_mcl_obj:Object = new Object();
    
    	mcl_obj.onLoadInit = function(target_mc:MovieClip) {
    		var tween_handler:Object = new Tween(target_mc, "_alpha", Strong.easeIn, 0, 100, 1, true);
    		tween_handler.onMotionFinished = function() {
    			tween_handler2();
    		};
    	};
    
    	sf_mcl_obj.onLoadInit = function(target_mc:MovieClip) {
    		var tween_handler2:Object = new Tween(target_mc, "blur", Strong.easeIn, 0, 10, 3, true);
    		tween_handler2.onMotionChanged = function() {
    			target_mc.filters = [new BlurFilter(target_mc.blur, target_mc.blur, 3)];
    		};
    		tween_handler2.onMotionFinished = function() {
    			var tween:Object = new Tween(target_mc, "_alpha", Strong.easeOut, 100, 0, 2, true);0
    		};
    	};
    	target_mc.addListener(mcl_obj);
    	target_mc.addListener(sf_mcl_obj);
    }
    E la lancio così:
    codice:
    transition(my_mcl0);
    invocata singolarmente funziona ma solo la prima volta.
    se la metto nel ciclo FOR funziona, ma solo per la prima clip.

    mi piacerebbe che fosse applicata a tutte una dopo l'altra... ma non riesco.
    C'è qualcuno che sa dirmi cosa sbaglio?

    grazie.
    i pazzi dicono ciò che i saggi scrivono

  2. #2
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    come lo applichi il ciclo for??
    ad esempio supponiamo tu abbia 5 mc istanziati sulla _root con nomi istanza my_mc1,my_mc2,...,my_mc5
    se metti questo codice, cosa succede??

    for(var i=1;i<=5;i++){
    transition(_root.["my_mc"+i]);
    }

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  3. #3
    Utente di HTML.it L'avatar di pavle
    Registrato dal
    Nov 2007
    Messaggi
    10
    Originariamente inviato da byaur
    come lo applichi il ciclo for??
    ad esempio supponiamo tu abbia 5 mc istanziati sulla _root con nomi istanza my_mc1,my_mc2,...,my_mc5
    se metti questo codice, cosa succede??

    for(var i=1;i<=5;i++){
    transition(_root.["my_mc"+i]);
    }

    Ciao byaur, intanto grazie per aver risposto, ...

    ho già provato quella soluzione ma non va, anche se ho usato
    codice:
     transition( holder_mc["img_mc"+i] );
    al posto di _root[...]

    comunque nel frattempo, ho fatto un passo indietro e ho realizzato questo ( è brutto e con molti dati uguali che si ripetono, ma almeno funziona...:master: ) al posto della bella funzione di prima, e lo metto direttamente dopo il ciclo.
    codice:
    Tween1 = new Tween(holder_mc.img_mc0, "_alpha", Strong.easeIn, 0, 100, 1, true);
    Tween1.onMotionFinished = function() {
    	Tween_sfoca = new Tween(holder_mc.img_mc0, "blur", Strong.easeIn, 0, 10, 1, true);
    	Tween_sfoca.onMotionChanged = function() {
    		holder_mc.img_mc0.filters = [new BlurFilter(holder_mc.img_mc0.blur, holder_mc.img_mc0.blur, 1)];
    	};
    	Tween_sfoca.onMotionFinished = function() {
    		Tween_torna = new Tween(holder_mc.img_mc0, "_alpha", Strong.easeIn, 100, 0, 1, true);
    		Tween_torna.onMotionFinished = function() {
    			Tween2 = new Tween(holder_mc.img_mc1, "_alpha", Strong.easeIn, 0, 100, 1, true);
    			Tween2.onMotionFinished = function() {
    				Tween_sfoca2 = new Tween(holder_mc.img_mc1, "blur", Strong.easeIn, 0, 10, 1, true);
    				Tween_sfoca2.onMotionChanged = function() {
    					holder_mc.img_mc1.filters = [new BlurFilter(holder_mc.img_mc1.blur, holder_mc.img_mc0.blur, 1)];
    				};
    				Tween_sfoca2.onMotionFinished = function() {
    					Tween_torna2 = new Tween(holder_mc.img_mc1, "_alpha", Strong.easeIn, 100, 0, 1, true);
    				};
    			};
    		};
    	};
    };
    quest'ultimo codice diciamo che è il risultato che avrei dovuto avere con la funzione "transition(mymc)"...
    la cosa che non digerisco è che non capisco perchè non funziona l'altra.... sapresti trasformare quest'ultimo code in una funzione dove basta che gli passo
    transition( holder_mc["img_mc"+i] );
    e va?....
    mi sembra ridicolo scrivere mille righe di codice che si ripete!
    i pazzi dicono ciò che i saggi scrivono

  4. #4
    Utente di HTML.it L'avatar di pavle
    Registrato dal
    Nov 2007
    Messaggi
    10
    devo fare qualcosa tipo:
    ci sono "i" immagini;
    per ogni immagine crea un mc;
    transizione{alfa 0-100; sfucatura; alfa 100-0}

    conta 3 secondi

    se sono passati 3 secondi
    fai partire la transizione sull'mc0
    mentre parte la transizione sull'mc0

    conta 3 secondi

    se sono passati 3 secondi
    fai partire la transizione sull'mc1
    mentre parte la transizione sull'mc1

    conta 3 secondi

    se le immagini sono finite ricomincia dall'inizio ....

    anche un .yoyo(); andrebbe bene se si ripetesse la medesima funzione su un altro oggetto però...

    la riesco a descrivere facilmente ma non riesco a scriverla...
    attendo illuminazioni.
    sono sicuro che si può scrivere bene.
    i pazzi dicono ciò che i saggi scrivono

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.