Cómo utilizar la longitud de un flv para mostrar un reloj de cuenta regresiva

  • CStrauss
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Mar 23, 2006
  • Mensajes: 122
  • Loc: St. Louis MO. USA
  • Status: Offline

Nota Octubre 1st, 2008, 7:03 pm

Aceptar en este caso es mi situación. Im trabajando en un proyecto flash que es básicamente el típico bordo de puntuación que ves en un partido de fútbol. En el centro es un FLV que se reproduce. Sé que el tiempo del video es de 1 min 50.254 segundos. Tengo un reloj en mi marcador y quiero contar con el uso de la longitud del archivo FLV a 0:00, al igual que un juego de reloj.

¿Hay una forma en que puede utilizar el método playHeadTime a hacer eso? si alguien ha hecho algo como esto por favor puesto que muestra un fragmento de código para mí mirar a ver cómo se ha hecho?

Im buscando algo utilizando Actionscript 3

Gracias
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Octubre 1st, 2008, 7:03 pm

  • ATNO/TW
  • Super Moderator
  • Super Moderator
  • Avatar de Usuario
  • Registrado: May 28, 2003
  • Mensajes: 23403
  • Loc: Woodbridge VA
  • Status: Offline

Nota Octubre 1st, 2008, 7:15 pm

IVE nunca lo ha hecho, pero ya saben la duración de la FLV no creo que usted tiene que efectivamente utilizar el tiempo de reproducción. Suponiendo que el tiempo es consistente (dada la velocidad de reproducción, descarga, precarga, amortiguación, etc) usted debe ser capaz de utilizar algo como esto para su marcador

http://schoolofflash.com/2008/04/10/tut ... nscript-3/
"There's no place like 127.0.0.1 except for ::1."
Alexandria Networks. Leader in IT consulting for associations/non-profits, and small to medium sized businesses around the northern Virginia and Washington D.C. metro area.
  • CStrauss
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Mar 23, 2006
  • Mensajes: 122
  • Loc: St. Louis MO. USA
  • Status: Offline

Nota Octubre 1st, 2008, 7:27 pm

Sí vi que tutorial y tienen como una opción de copia de seguridad, sólo parece un montón de código innecesario a utilizando ese tipo de tutorial si tengo acceso a jugar la cabeza tiempo y que quieren saber si hay una cierta funciones matemáticas para mostrar y sólo tienen que contar hacia atrás
  • ATNO/TW
  • Super Moderator
  • Super Moderator
  • Avatar de Usuario
  • Registrado: May 28, 2003
  • Mensajes: 23403
  • Loc: Woodbridge VA
  • Status: Offline

Nota Octubre 1st, 2008, 7:44 pm

Esto podría ayudar
http://www.actionscript.org/forums/arch ... 45812.html
"There's no place like 127.0.0.1 except for ::1."
Alexandria Networks. Leader in IT consulting for associations/non-profits, and small to medium sized businesses around the northern Virginia and Washington D.C. metro area.
  • CStrauss
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Mar 23, 2006
  • Mensajes: 122
  • Loc: St. Louis MO. USA
  • Status: Offline

Nota Octubre 1st, 2008, 10:23 pm

OK, me imaginé algo mirando un código que muestra el tiempo jugado / tiempo total tratando de revertirla. Lo tengo suerte de trabajar, hay algunos problemas por lo que se publicará en el vínculo para verlo y el código que usé para ver si alguien me puede ayudar a calcular el tiempo restando las cosas.

Una de las cosas Im tratando de lograr es tener líderes 0s antes de los minutos y segundos cuando sea necesario. pero aquí está mi enlace y el código de ver por ti mismo mirar el reloj y ver los problemas que Im.

http://stcharlestitans.com

Código: [ Select ]
 
this.addEventListener(Event.ENTER_FRAME, updateNP);
 
function updateNP(event:Event):void {
    var totalSeconds:Number = flvControl.playheadTime;
    var totalSeconds2:Number =  flvControl.totalTime; // total time in miliseconds
    var minutes:Number = Math.floor(totalSeconds /60);
    var minutes2:Number = Math.floor(totalSeconds2 /60); // total minutes
    var seconds = Math.floor (totalSeconds) % 60;
    var seconds2 = Math.floor (totalSeconds2) % 60; // total seconds
    //trace(minutes2 +":"+seconds2);
   
    var currentMinute = minutes2 - minutes;
    var currentSeconds = seconds2 - seconds;
 
    //trace(currentMinute+":"+currentSeconds);
    timeBox_txt.text = "0" + currentMinute + ":" + currentSeconds;
 
}
 
  1.  
  2. this.addEventListener(Event.ENTER_FRAME, updateNP);
  3.  
  4. function updateNP(event:Event):void {
  5.     var totalSeconds:Number = flvControl.playheadTime;
  6.     var totalSeconds2:Number =  flvControl.totalTime; // total time in miliseconds
  7.     var minutes:Number = Math.floor(totalSeconds /60);
  8.     var minutes2:Number = Math.floor(totalSeconds2 /60); // total minutes
  9.     var seconds = Math.floor (totalSeconds) % 60;
  10.     var seconds2 = Math.floor (totalSeconds2) % 60; // total seconds
  11.     //trace(minutes2 +":"+seconds2);
  12.    
  13.     var currentMinute = minutes2 - minutes;
  14.     var currentSeconds = seconds2 - seconds;
  15.  
  16.     //trace(currentMinute+":"+currentSeconds);
  17.     timeBox_txt.text = "0" + currentMinute + ":" + currentSeconds;
  18.  
  19. }
  20.  


si alguien puede encontrar una solución a mis problemas antes que yo y la mayoría de los resultados de mi por favor hágamelo saber.
  • ATNO/TW
  • Super Moderator
  • Super Moderator
  • Avatar de Usuario
  • Registrado: May 28, 2003
  • Mensajes: 23403
  • Loc: Woodbridge VA
  • Status: Offline

Nota Octubre 2nd, 2008, 7:15 am

Me salió mal esta mañana con todo esto y se acercó con algo que funcione. No es la más bonita de código en el mundo y no puede ser una forma más fácil de hacerlo, pero funciona así ¿qué diablos. Mi video es 3:32. Heres el ejemplo de trabajo que hace exactamente lo que está después (aunque funciona perfectamente si fregar la barra de reproducción):

http://www.alaron-nuclear.com/devsite/f ... vtime.html

Heres el código que utiliza:
Código: [ Select ]
this.addEventListener(Event.ENTER_FRAME, updateNP);
 
function updateNP(event:Event):void {
    var totalSeconds:Number = flvControl.playheadTime;
    var totalSeconds2:Number =  flvControl.totalTime; // total time in miliseconds
    var minutes:Number = Math.floor(totalSeconds /60);
    var minutes2:Number = Math.floor(totalSeconds2 /60); // total minutes
    var seconds = Math.floor ((totalSeconds) % 60)-27; // this keeps the clock from going into  negative numbers - it's the difference between the total starting seconds and 59 seconds. In your case your clock starts at 50 so this should be 9 for you
    var seconds2 = Math.floor (totalSeconds2) % 60; // total seconds
    var currentMinute = minutes2 - minutes;
    var currentSeconds = seconds2 - seconds;
   
    //display the clock
    //currentSeconds starts at 60 as you can tell by the trace - in my movie if I go below 27 it counts into negative numbers and this also compensates for the change in minutes. The minute won't change until currentSeconds reaches 0 so we compensate for that here
    if (currentSeconds < 27) {
    timeBox_txt.text = "0" + (currentMinute - 1) + ":" + (currentSeconds + 32);
    }
    //this displays the countdown time normally as long as the display is greater than 9
    else if (currentSeconds > 36   ) {
        timeBox_txt.text = "0" + currentMinute + ":" + (currentSeconds - 27);
    }
    //if the display is 9-0 this adds the leading 0 to the seconds.
    else if ((currentSeconds < 36) + (currentSeconds > 27)) {
        timeBox_txt.text = "0" + currentMinute + ":0" + (currentSeconds - 27);
    }
    //trace(currentSeconds);
     }
 
  1. this.addEventListener(Event.ENTER_FRAME, updateNP);
  2.  
  3. function updateNP(event:Event):void {
  4.     var totalSeconds:Number = flvControl.playheadTime;
  5.     var totalSeconds2:Number =  flvControl.totalTime; // total time in miliseconds
  6.     var minutes:Number = Math.floor(totalSeconds /60);
  7.     var minutes2:Number = Math.floor(totalSeconds2 /60); // total minutes
  8.     var seconds = Math.floor ((totalSeconds) % 60)-27; // this keeps the clock from going into  negative numbers - it's the difference between the total starting seconds and 59 seconds. In your case your clock starts at 50 so this should be 9 for you
  9.     var seconds2 = Math.floor (totalSeconds2) % 60; // total seconds
  10.     var currentMinute = minutes2 - minutes;
  11.     var currentSeconds = seconds2 - seconds;
  12.    
  13.     //display the clock
  14.     //currentSeconds starts at 60 as you can tell by the trace - in my movie if I go below 27 it counts into negative numbers and this also compensates for the change in minutes. The minute won't change until currentSeconds reaches 0 so we compensate for that here
  15.     if (currentSeconds < 27) {
  16.     timeBox_txt.text = "0" + (currentMinute - 1) + ":" + (currentSeconds + 32);
  17.     }
  18.     //this displays the countdown time normally as long as the display is greater than 9
  19.     else if (currentSeconds > 36   ) {
  20.         timeBox_txt.text = "0" + currentMinute + ":" + (currentSeconds - 27);
  21.     }
  22.     //if the display is 9-0 this adds the leading 0 to the seconds.
  23.     else if ((currentSeconds < 36) + (currentSeconds > 27)) {
  24.         timeBox_txt.text = "0" + currentMinute + ":0" + (currentSeconds - 27);
  25.     }
  26.     //trace(currentSeconds);
  27.      }
  28.  


En el caso de que su reloj se pone en 50 segundos, así que ajustar los números en consecuencia. Como he dicho, casi hizo que por ensayo y error. No muy bien podría ser una manera más sencilla de ejecutar eso. Si alguien puede descubrir una manera más fácil, el amor de la identificación para saber, porque voy a usar esto en el futuro con una mayoría de mi FLVs. También, si tu FLV es un archivo grande, Id recomendamos el uso de un preloader para que el reloj no se muestra antes de su FLV hace.
"There's no place like 127.0.0.1 except for ::1."
Alexandria Networks. Leader in IT consulting for associations/non-profits, and small to medium sized businesses around the northern Virginia and Washington D.C. metro area.
  • CStrauss
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Mar 23, 2006
  • Mensajes: 122
  • Loc: St. Louis MO. USA
  • Status: Offline

Nota Octubre 2nd, 2008, 8:34 pm

Gracias por tomarse el tiempo ATNO / TW para escribir ese código. Después de algunos ensayos y errores a mí mismo esta mañana, y la búsqueda a través de la Ayuda de Google Docs encontré un camino más corto para hacerlo todavía hay algunas cuestiones que discutiré en un mínimo, pero aquí está el código que hice para conseguir mi contador hacia atrás. Es una forma mucho más corto para hacerlo.

Código: [ Select ]
this.addEventListener(Event.ENTER_FRAME, updateNP);

function updateNP(event:Event):void {
    var totalSeconds:Number = flvControl.playheadTime; // current time on playhead
    var totalSeconds2:Number = flvControl.totalTime; // total time in miliseconds
    
    var timeLeft:Number = totalSeconds2 - totalSeconds;
    var minutes:Number = Math.floor(timeLeft / 60);
    var seconds:Number = Math.floor(timeLeft % 60);
    var min:String = minutes.toString();
    var sec:String = seconds.toString();
    
    if(minutes < 10){
        min = "0" + min;
    }
    if(seconds < 10){
        sec = "0" + sec;
    }
    
    //trace(min+":"+sec);
    timeBox_txt.text = min + ":" + sec;
}
  1. this.addEventListener(Event.ENTER_FRAME, updateNP);
  2. function updateNP(event:Event):void {
  3.     var totalSeconds:Number = flvControl.playheadTime; // current time on playhead
  4.     var totalSeconds2:Number = flvControl.totalTime; // total time in miliseconds
  5.     
  6.     var timeLeft:Number = totalSeconds2 - totalSeconds;
  7.     var minutes:Number = Math.floor(timeLeft / 60);
  8.     var seconds:Number = Math.floor(timeLeft % 60);
  9.     var min:String = minutes.toString();
  10.     var sec:String = seconds.toString();
  11.     
  12.     if(minutes < 10){
  13.         min = "0" + min;
  14.     }
  15.     if(seconds < 10){
  16.         sec = "0" + sec;
  17.     }
  18.     
  19.     //trace(min+":"+sec);
  20.     timeBox_txt.text = min + ":" + sec;
  21. }


Básicamente lo que hice es tomar la playheadTime que sería el momento actual en el archivo FLV y se restará de la totalTime que me dio el tiempo en milisegundos.

Luego hice algunas conversiones utilizando el Math.floor llegar en números manejables.

Ahora, la siguiente parte es cómo tratar con las opciones - el número y la adición de 0s líder. Me costó un poco hacer que la codificación es diferente en AS3 entonces lo que era en AS2, que no es de la OMI una medida muy buena de adobe para no hacer AS3 muy compatible con secuencias de comandos AS2, pero ese es otro tema.

Pero lo que hice fue convertir mi número a la cadena a mostrar en el control de reloj del juego, si el valor, si bien sigue siendo un número es menor de 10 y si es así, añadir un 0 a la cadena. desde allí lo mostrará en el campo de texto dinámico.

La única cuestión que realmente tengo que tratar es cuando el archivo comienza a jugar para el flash rápido en el reloj del juego que vea el NaN para el flash no es un número antes de que los cambios en el tiempo. Tan Im actualmente tratando de averiguar cómo obtener un preloader para trabajar con la esperanza de que lo arregla si no que probablemente puede añadir otro si la declaración de decir algo, si el valor es NaN pantalla 1:50 entonces va a cambiar una vez que la secuencia de comandos se pone en marcha.

Pero como esto puede no ser la manera más profesional, como he dicho que sólo tomó algunas jugar con los variables y los convierte a la cadena y qué no hacer que funcione, pero es una versión condensada de gran parte de lo que hiciste. Pero, no obstante, por lo que no nos encontramos dos maneras para que otros puedan ver y construir fuera de.

De nuevo gracias por el tiempo que pasó a jugar con mi código.
  • ATNO/TW
  • Super Moderator
  • Super Moderator
  • Avatar de Usuario
  • Registrado: May 28, 2003
  • Mensajes: 23403
  • Loc: Woodbridge VA
  • Status: Offline

Nota Octubre 2nd, 2008, 8:43 pm

Sí, tengo la flash NaN varias veces mientras yo estaba tocando la lira. mi código final eliminado, pero que no tienen idea de por qué. Piensa mal intento de su versión mañana.
"There's no place like 127.0.0.1 except for ::1."
Alexandria Networks. Leader in IT consulting for associations/non-profits, and small to medium sized businesses around the northern Virginia and Washington D.C. metro area.
  • CStrauss
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Mar 23, 2006
  • Mensajes: 122
  • Loc: St. Louis MO. USA
  • Status: Offline

Nota Octubre 2nd, 2008, 9:06 pm

mucho si tiene algún problema con él, hágamelo saber

Publicar Información

  • Total de mensajes en este tema: 9 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 52 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC