Ciao, esiste una funzione in flash che trasforma un numero in base 10 in un numero in base 8?
Ciao, esiste una funzione in flash che trasforma un numero in base 10 in un numero in base 8?
Puoi spiegarti un po' meglio. magari un esempio?
Il problema è questo, ho chiesto base 8 perchè credevo fosse + facile da capire, ma in realtà mi servirebbe in base 60.
Volevo semplicemente, dato il numero di frame attuale del filmato e il framerate, calcolare il tempo attuale di riproduzione del filmato (almeno un pressapoco).
Sono riuscito, con questo codice:
dove 20 è il framerate del filmato. La cosa funziona, l'unico problema è che quando arriva a 60 prosegue, da il numero di secondi.codice:_root.secondi.text=Math.round(_root.filmato._currentframe/20);
Così volevo sapere se esiste una funzione di conversione da base decimale a un'altra base (60 in questo caso).
Se non c'è farò un po' di calcoli.
![]()
C'è Number.toString che permette di specificare la base, però arriva fino a 36![]()
Grazie, mi ingenierò un po'
Hai idea di cosa vuol dire convertire un numero in base 60? A livello di codice è semplice, ma prima devi trovare altri 26 caratteri (oltre alle lettere e ai numeri) per codificare il numero! Non è una cosa molto comoda.
Scusate il reply doppio. Per il tuo problema, non c'è bisogno di convertire un numero in base 60.
Intanto fai mente locale al fatto che, affinché tu possa usare la proprietà _currentframe, è necessario che il filmato scorra sempre in una sola direzione. Se non fosse così, dovresti associare ad ogni frame l'incremento di una variabile in modo tale da tener traccia del numreo di frames effettivamente eseguiti.Volevo semplicemente, dato il numero di frame attuale del filmato e il framerate, calcolare il tempo attuale di riproduzione del filmato (almeno un pressapoco).
Comunque:
Ma allora tu vuoi contare modulo 60, non convertire in base 60! E' molto più semplice, prova così:Sono riuscito, con questo codice:
dove 20 è il framerate del filmato. La cosa funziona, l'unico problema è che quando arriva a 60 prosegue, da il numero di secondi.codice:_root.secondi.text=Math.round(_root.filmato._currentframe/20);
codice:_root.secondi.text=Math.round(_root.filmato._currentframe/20) % 60;
Grande!!
Se a qualcuno interessa il codice completo che ho usato è questo:
_root.filmato è il filmato caricato.
_root.totale è la casella di testo che indica il tempo totale.
_root.parziale è la casella di testo che indica il tempo parziale.
il codice l'ho messo nell'evento enterframe di "filmato".
tempo totale del filmato:
tempo parziale del filmato:codice:vartimeminuti=Math.floor((_root.filmato._totalframes/20)/60); if(vartimeminuti<10) { vartimeminuti="0"+vartimeminuti; } vartimesecondi=Math.round((_root.filmato._totalframes/20)%60); if(vartimesecondi<10) { vartimesecondi="0"+vartimesecondi; } _root.totale.text=vartimeminuti+" : "+vartimesecondi
codice:varsecondi=Math.round(_root.filmato._currentframe/20) % 60; if(varsecondi<10) { varsecondi="0"+varsecondi; } varminuti=Math.floor((_root.filmato._currentframe/20)/60); if(varminuti<10) { varminuti="0"+varminuti; } _root.parziale.text=varminuti+" : "+varsecondi