Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    andare indietro sulla _root gradualmente

    vorrei creare un pulsante che manda indietro la linea temporale di 10 frames per volta. La cosa deve però essere graduale (come se fosse un'interpolazione) e non istantanea. Avevo provato con un ciclo for che si ripeteva 10 volte e prevFrame() ma in pratica lo spostamento, data la velocità degli attuali Pentium era immediato e non simil-interpolato

  2. #2

    Re: andare indietro sulla _root gradualmente

    Originariamente inviato da Fortebraccio
    vorrei creare un pulsante che manda indietro la linea temporale di 10 frames per volta. La cosa deve però essere graduale (come se fosse un'interpolazione) e non istantanea. Avevo provato con un ciclo for che si ripeteva 10 volte e prevFrame() ma in pratica lo spostamento, data la velocità degli attuali Pentium era immediato e non simil-interpolato
    codice:
    this.posizione=10;
    this.onEnterFrame=function(){
    if(this.posizione==0){
    delete this.onEnterFrame;
    }
    else {
    this._perFrame();
    this.posizione--;
    }
    }

  3. #3
    ok, grazie jeck
    qualcun altro che ha altri suggerimenti su come andare a ritroso sulla linea temporale ma in maniera graduale, come se fosse un'interpolazione di movimento: il movimento all'indietro deve essere di un numero prestabilito di frames, per es. 15 e comandato da un bottone

  4. #4
    E' normale che con un for si vedesse subito il risultato finale, perchè i cicli mostrano appunto solo il risultato finale dell'operazione e non le varie operazioni intermedie.
    Potresti usare un setInterval, tipo così


    function arretra(){
    _root.gotoAndStop(_root._currentframe-10)
    if(root._currentframe == 0){
    clearInterval(c)
    }
    }

    c = setInterval(arretra,1000)

  5. #5
    avevo usato una funzione "arretra "simile alla tua, sempre richiamata da setInterval, solo che io usavo prevFrame. In ogni caso si verifica un fenomeno che non riesco a capire. Il bottone indietro funziona tramite una funzione di call back posta in un fotograma chiave della _root insieme a tutto il codice, ma non so se c'entra qualcosa. Tutto fila liscio e gli oggetti vanno avanti ed indietro a seconda del bottone azionato. Ma se per caso faccio un veloce doppio click sul bottone indietro si incasina tutto quanto e l'animazione si blocca come se la funzione "arretra" diventasse attiva all'infinito

  6. #6
    Originariamente inviato da Fortebraccio
    avevo usato una funzione "arretra "simile alla tua, sempre richiamata da setInterval, solo che io usavo prevFrame. In ogni caso si verifica un fenomeno che non riesco a capire. Il bottone indietro funziona tramite una funzione di call back posta in un fotograma chiave della _root insieme a tutto il codice, ma non so se c'entra qualcosa. Tutto fila liscio e gli oggetti vanno avanti ed indietro a seconda del bottone azionato. Ma se per caso faccio un veloce doppio click sul bottone indietro si incasina tutto quanto e l'animazione si blocca come se la funzione "arretra" diventasse attiva all'infinito
    Certo, perchè la funzione viene richiamata 2 volte, metti un controllo che richiama la funzione, se per esempio una variabile risulta true non attiva il set interval
    codice:
    function arretra(){ 
    _root.gotoAndStop(_root._currentframe-10) 
    if(root._currentframe == 0){ 
    clearInterval(c)
    pippo=false;
    } 
    } 
    if(!pippo){
    pippo=true;
    c = setInterval(arretra,1000)
    }

  7. #7
    proverò a fare come dici ma è come se la funzione si bloccasse rimanendo attiva, non un semplice chiamata due volte

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.