Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [Pillolina - MX] modificare il frame rate di un filmato

    Come ben tutti sapete, non esiste un "metodo" per modificare il frame rate di un filmato. Però possiamo aumentare o diminuire la velocità di riproduzione del filmato tramite ActionScript. Come?? Iniziamo prima a capire come funziona il tutto.
    Se ad esempio impostiamo il fps del filmato a 24, significa che flash leggerà 24 frames ogni secondo, Ossia passerà da un frame all'altro ogni 1000 millisecondi / 24 fps = 41,666.. millisecondi.

    Quindi se vogliamo che il nostro filmato vada a 12 fps (o 48) basta passare da un frame all'altro ogni:

    1000/12 = 83,333 millisecondi o 1000/48 = 20,83333 millisecondi

    A questo punto vi state chiedendo come poter passare da un frame all'altro impostando noi il tempo. In flash MX esiste l'opzione setInterval.
    Il setInterval è un azione che chiama una funzione a intervalli regolari durante la riproduzione di un filmato.
    Quindi per far andare il nostro filmato a 12 fps (quando a priori è stato impostato 24) basterà richiamare una funzione (vedremo in seguito le azioni che effettuerà questa function) ogni 83 millisecondi circa. Dico circa perchè difficilmente la funzione verrà richiamata ogni 83 ms, ma solitamente l'intervallo è più lungo di qualche millisecondo. Ciò può causare un fps falso, ossia impostando 12 fps in realtà andremo quasi a 11 fps. Se questo margine di errore è troppo evidente, possiamo ovviare aumentando il divisore. Invece di dividere per 12 dividiamo per 13, e ci ritroveremo un fps intorno ai 12.

    Vediamo lo script:

    sul primo frame del MovieClip (o sulla _root del filmato) scriviamo:


    codice:
    function avanti() {
    	(_currentframe == _totalframes) ? gotoAndStop(1) : nextFrame();
    }
    _root.onLoad = function() {
    	stop();
    	fps = 1000/25; //impostiamo un fps uguale a 24
    	a = setInterval(avanti, fps);
    };
    Questo script va bene se vogliamo che il filmato vada in loop, ossia se arrivato all'ultimo frame deve ricominciare da capo. Se invece vogliamo che arrivato all'ultimo frame si fermi, basta sostituire gotoAndStop(1) con clearInterval(a).

    qui trovate un esempio:
    esempio

    ho riscontrato seri problemi solo con IE (vers. 6.0) mentre va molto bene con NN (vers. 7.0), usando il proiettore (file .exe) o semplicemente aprendo il .swf

    Spero che possa servire,
    Ciauz

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  2. #2
    Urrà per Yassassin

    Certo che può servire, in un filmato con molte animazioni, a volte, c'è bisogno proprio di una cosa del genere per avere un movimento fluido!!

    Grazie e ciao!!

  3. #3
    Utente di HTML.it L'avatar di Nuke
    Registrato dal
    Feb 2001
    Messaggi
    633
    Molto utile.. THX
    Finding the answers comes knowledge knowing what the answers mean comes wisdom - http://www.catb.org/hacker-emblem/hacker.png

  4. #4

    Re: [Pillolina - MX] modificare il frame rate di un filmato

    Originariamente inviato da Yassassin
    ho riscontrato seri problemi solo con IE (vers. 6.0) mentre va molto bene con NN (vers. 7.0), usando il proiettore (file .exe) o semplicemente aprendo il .swf
    il problema riscontrato con IE non è altro che il frame rate impostato non viene rispettato come invece succede con Netscape.
    Più aumentate il frame rate più aumenta l'errore (se impostato il fps a 50 vi troverete una media di 32). Con NN invece questo nn succede (nemmeno aprendo il .exe o .swf).

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  5. #5

    Re: Re: [Pillolina - MX] modificare il frame rate di un filmato

    Originariamente inviato da Yassassin
    il problema riscontrato con IE non è altro che il frame rate impostato non viene rispettato come invece succede con Netscape.
    Più aumentate il frame rate più aumenta l'errore (se impostato il fps a 50 vi troverete una media di 32). Con NN invece questo nn succede (nemmeno aprendo il .exe o .swf).
    Bè se si conosce l'errore è già qualcosa!! Pensavo che non funzionasse proprio con IE!

    Ciao!

  6. #6
    se si imposta di default sul document a 50 e poi si modifica il framerate in modo piu' lento ??? :master:


    cmq bella pillola :metallica
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Originariamente inviato da andr3a
    se si imposta di default sul document a 50 e poi si modifica il framerate in modo piu' lento ??? :master:
    è la stessa cosa. IE non rispetta i tempi, è pesante. Quando ie è aperto consuma risorse e le toglie a flash (rallentando lo script). Con NN questo non succede

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  8. #8
    Ragazzi potreste spiegarmi meglio come utilizzare questo script?
    Ho messo il codice nel primo frame, ma poi vorrei fare in modo che l'utente inserisca un numero in un campo di testo modificando così il frame rate.
    Il campo input ha come nome istanza e come valore var "valore".
    Ho provato facendo così:
    fps = 1000/valore;
    ma non funziona...
    il movieclip va velocissimo e nel campo input esce scritto _level0.valore

    Come devo fare?
    Grazie!

  9. #9
    Allora ho risolto il problema...
    dovevo solo mettere valore.text

    adesso però ho un altro problemino.
    Come si fa quel pulsantino aggiorna che sta nell'esempio di yassassin?
    Altrimenti diventa impossibile recuperare il valore inserito nel campo input.
    Grazie

  10. #10

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.