Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    31

    Attendere prima del caricamento di un altro frame

    Forse è una domanda proprio banale...

    uno = random(6);
    due = uno + 1;
    gotoAndPlay(due);

    Come faccio a dirgli:

    uno = random(6);
    due = uno + 1;
    "ADESSO FERMATI 3 SECONDI, poi:"
    gotoAndPlay(due);

    Devo lavorare per forza sulla timeline come presumo o tramite script posso raggiungere il mio scopo?
    Ghizza.

  2. #2
    aggiungi il codice in blu:
    codice:
    uno = random(6); 
    due = uno + 1; 
    // "ADESSO FERMATI 3 SECONDI, poi:" 
    stop();
    tempo = getTimer();
    this.onEnterFrame = function() {
       if ((getTimer()-tempo) > 3000)    // tre secondi
            delete this.onEnterFrame;
            gotoAndPlay(due); 
       }
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    31
    Non funzia...
    a parte che credo ci sia una graffa di troppo alla fine, non mi si "ferma" il frame.
    Praticamente io ho 7 frame consecutivi in ognuno dei quali compare una piccola immagine.
    Vorrei nel modo più semplice possibile far "saltare" a random il filmato da un frame all'altro, ma fermando ciascun frame per un tot prima che salti al successivo.

    Mi hanno suggerito anche setInterval ma non ne conosco la sintassi.

  4. #4
    No, non c'era una graffa di troppo, ce n'era una in meno (quella di apertura delle IF), però, ora che mi hai spiegato cosa vuoi fare, senza cambiare troppo la tua impostazione iniziale, direi di fare così...
    Nel primo frame della timeline inserisci:
    codice:
    stop();
    tempo = getTimer();
    this.onEnterFrame = function() {
       if ((getTimer()-tempo) > 3000) {   // tre secondi
            frm = Math.ceil(Math.random()*7);
            tempo = getTimer();
            gotoAndStop(frm); 
       }
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    31
    Perfetto... ora funziona alla grande, grazie.
    Mi sai dire che differenza c'è tra l'uso di onenterframe e setinterval? Mi pare di aver letto da qualche parte che setinterval non è precisissimo, mentre io avrei bisogno che 3 secondi siano... 3 secondi esattissimi.
    Mi hanno anche suggerito con setinterval questo codice che funziona ugualmente:

    // fermo
    stop();
    // estrazione
    uno = random(6);
    due = uno + 1;
    // setInterval che chiama dopo 3 secondi la funzione gotoNumberFrame
    mioid= setInterval(gotoNumberFrame, 3000)

    function gotoNumberFrame(){
    // cancello il setInterval altrimenti ogni 3 secondo mi chiama la funzione
    clearInterval(miodi);
    // fasccio il goto..
    gotoAndPlay(due);
    }

    Che ne dici?

  6. #6
    Che versione di Flash utilizzi?
    Fa nulla, qualunque sia basta premere F1 e comparirà la Guida sull'uso di Flash.

    Dentro la guida c'è il Dizionario ActionScript

    Comunque, non c'è molta differenza tra onEnterFrame e setInterval in quanto a precisione.
    Perché la precisione non è sempre esatta?
    Perché il "clock" di Flash è il "frame-rate" (numero di fotogrammi al secondo): sia che utilizzi un sistema o l'altro sarà sempre il frame rate che scandirà il tempo di esecuzione, quindi se hai scelto 3 secondi ed hai un frame rate di 24, 24/3=8 c'è corrispondenza esatta, ma se i secondi sono 5: 24/5=4,8 quindi non c'è corrispondenza esatta.

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.