Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Aspettare la variabile

  1. #1

    Aspettare la variabile

    Vorrei creare una transazione di uscita e di entrata di movieclip.

    Ho un filmato principale che richiama dei moviclip.
    ho creato 2 tipi di pulsanti uno che richiama per la prima volta i movieclip ed altri uguali ma che vengono usati solo se un movieclip è già stato aperto.

    il pulsante che richiama il movieclip ha il seguente codice.

    codice:
    on (release) {
    	this.centro1.centro2.gotoAndPlay("esci")
    	if(_root.miavar=="fine"){
    	this.centro1.centro2.loadMovie("atelier.swf");
    	}
    }
    con la prima riga vado a richiamare l'etichetta "esci" così che mi fà un'animazione da timeline e mi fà scomparire tutto quello che vedo, nell'ultimo frame del movieclip aperto vado a settare la variabile:

    codice:
    _root.miavar="fine";
    Il mio intento era quello che quando la variabile diventasse "fine" a quel punto partisse la funzione compresa nell' if.

    Ma mi sono accorto che la variabile funziona, ma ma dato che viene settata dopo la pressione del bottone l'if non ha effetto. Ci vorrebbe qualcosa che mi mandasse in ciclo e la verifica dell'if fosse ripetuta fin quando non si verifica.
    Oppure se avete altri suggerimenti per avere lo stesso risultato.

    Chi mi può aiutare??. Grazie.

  2. #2
    Potresti provare ad annidare un setInterval() nel pulsante.

    codice:
    on(release){
    this.centro1.centro2.gotoAndPlay("esci")
    var t=setInterval(function():Void{
    if(_root.miavar=="fine"){
    this.centro1.centro2.loadMovie("atelier.swf");
    clearInterval(t);
    }
    },10)
    }
    setInterval() controlla ogni 10 millisecondi se il valore della variabile è "fine".
    Quando la condizione è soddisfatta, il controllo continuo viene interrotto dal clearInterval().

  3. #3
    Purtroppo niente, comunque la funzione dell'if non viene eseguita. Avevo già provato con il set intervall, la sintassi che avevo usato era leggermente diverso, ma purtroppo non ha funzionato.

    Per chiarezza in fondo al movieclip una volta finita l'animazione di uscita io eseguo anche il comando di unloadmovie, potrebbe incidere in qualcosa, anche se ho provato ad usare anche solo lo stop()

    codice:
    _root.miavar="fine";
    unloadMovie(_root.centro1.centro2);
    Ma come si può risolvere, e se invece di far scomparire il primo movieclip volessi far eseguire un secondo movie clip sempre sopra all'ultimo movieclip caricato, come si dovrebbe eseguire?????

    Grazie a tutti i forumisti di buona volontà che vogliono darmi una mano.

  4. #4
    Ho creato un esempio al volo che doveva grosso modo simulare la tua situazione, e mi funziona. In pratica ho creato un clip chiamato mioclip messo sullo stage. Il clip è caratterizzato da una semplice interpolazione su 30 fotogrammi i cui un rettangolo cambia colore. Nel clip sia il primo fotogramma che l'ultimo hanno uno stop(). Infine nell'ultimo fotogramma del clip ho settato la variabile:

    codice:
    _root.miavar="fine";
    Sullo stage assieme al clip ho messo il pulsante con il codice:

    codice:
    on(release){
    _root.mioclip.gotoAndPlay(2);
    var t=setInterval(function(){
    trace("condizone non verificata");
    if(_root.miavar=="fine"){
    trace("condizone verificata");
    clearInterval(t);
    _root.mioclip.loadMovie("prova.swf");
    }
    },10)
    }
    Una volta verificata la condizione, mi carica un cerchio fatto al volo chiamato prova.swf: tutto funziona normalmente. Sospetto che nel tuo caso sia il this a dare problemi a loadMovie(). Per questo non carica il filmato esterno. Prova ad usare il percorso assoluto:

    codice:
    _root.centro1.centro2.loadMovie("atelier.swf")

  5. #5


    Avevi ragione era il "this" che dava il problema.

    Alla fine ho usato il setinterval come da te suggerito all'inizio ed ho impostato tutti i percorsi partendo da "_root" e funziona tutto perfettamente.

    Tante, ma veramente tante grazie per il tempo che hai perso per me. Molto gentile.

    A buon rendere

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.