Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Problema con le pause

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    146

    Problema con le pause

    Salve ragazzi! Vi pongo un quesito piuttosto urgente,sperando che questa sia la sezione adatta... Ho realizzato un piccolo filmato flash che rappresenta una galleria d'arte monografica: in pratica una serie di diapositive sui quadri del Botticelli con delle animazioni tra un quadro e il successivo. L'idea è di mettere una pausa dopo ogni transizione in modo da fermarmi su un quadro per alcuni secondi prima che parta l'animazione per il seguente. All'altezza del fotogramma che mi interessa ho utilizzato questo codice:

    codice:
    stop();
    path=this;
    secondi=4;
    tempo=secondi*1000;
    pausa=setInterval(function(){clearInterval(pausa);path.play();},tempo);
    Tutto va bene quando faccio "prova scena". Quando però lancio l'swf si verificano dei problemi: a volte questo codice sembra non funzionare, nel senso che non ci sono più le pause. La cosa incredibile è che a volte il filmato parte bene e dopo alcune scene (non sempre la stessa) non funziona più, così come può succedere che tutto proceda fino alla fine senza intoppi...
    Facendo un po' di prove mi sono accorto di un'altra cosa: nel filmato sono previsti dei pulsanti di controllo, tipo "pause/play", "successivo" o "precedente". Quando si verifica il problema di cui vi chiedo, non funziona più neanche questa modalità di pausa...
    Come si fa a convincere il flash player a non bypassare il comando "stop()"? Aggiungo che in questo stesso filmato i salti tra le scene, o il comando "fscommand("fullscreen",true);" non soffrono mai di questi problemi.
    Per Aspera Ad Astra
    -----------------------------------------

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    il codice parrebbe corretto, considera però che se c'è un intoppo nell'animazione o altro, questo potrebbe far sì che l'intervallo non si interrompa e continui a macinare in background, rendendo perfettamente inutile lo stop() successivo
    l'intervallo va controllato perfettamente per evitare intoppi, tra l'altro il setInterval, così come il "novello" setTimeout, soffrono di una certa imprecisione, per cui i tuoi 4 secondi non saranno mai reali

    per saperne di più sulla gestione del tempo in flash, ti rimando alla lettura di questo articolo
    http://flash.html.it/articoli/leggi/...empo-in-flash/

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    146
    Capisco... insomma non ho la certezza che tutto funzioni...
    Comunque ho notato che sembrano più di 4 secondi, ma non è necessaria tanta precisione!
    Ho provato un altro script... e va tutto benissimo! Eppure la cosa mi convince poco. Chiariamo:a me basta che funzioni e perciò chiuderei anche qui, ringraziando! Ma, per curiosità personale, mi piacerebbe scoprire come mai!
    Questo è lo script:

    var pausa = 4000 // pausa in millisecondi
    function wait(){
    play();clearInterval(afterpausa);
    }
    var afterpausa=setInterval(wait,pausa);
    stop();
    Per Aspera Ad Astra
    -----------------------------------------

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    in effetti il codice non è molto diverso... ma ogni tanto il flash player è schizzinoso e anche modifiche banali possono produrre l'effetto sperato

  5. #5
    Ma perché non usi un semplice setTimeout?

    codice:
    stop();
    function play_it():Void{
    	play();
    }
    setTimeout(play_it,4000);

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.