Foros del Web » Creando para Internet » Flash y Actionscript »

PlayBack (2)

Estas en el tema de PlayBack (2) en el foro de Flash y Actionscript en Foros del Web. Perdonad que rescate este mensaje tan viejo pero lo he encontrado haciendo una busqueda, me ha surgido una duda, y el sistema no me deja ...
  #1 (permalink)  
Antiguo 28/12/2005, 18:45
 
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 7 meses
Puntos: 0
PlayBack (2)

Perdonad que rescate este mensaje tan viejo pero lo he encontrado haciendo una busqueda, me ha surgido una duda, y el sistema no me deja contestar en él, quizás porque es muy antiguo.

Quiero que al hacer click suceda un evento, y al hacer otro click al final del evento, rebobine la película hasta el principio. Hasta aquí, bien. Solo he cambiado el retroceder(this) que lo he metido en un on (press).

Funciona bien, pero no hay forma de hacer que la animacion vuelva a comenzar.

Carga la animación > haces click y comienza > haces click y rebobina > ahora estás al principio, haces click pero no comienza y quiero poder ejecutarlo todas las veces que qeuira.

A ver si podíes ayudarme que soy un poco novato :P.

Un saludo y gracias!
  #2 (permalink)  
Antiguo 28/12/2005, 19:08
Avatar de Mauri1  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago de Chile
Mensajes: 558
Antigüedad: 21 años, 4 meses
Puntos: 0
Hola coke_135

Cuando me dieron esa respuesta, la probé y todo bien !!. Pero llegó un momento en que necesitaba hacer lo que tu necesitas y me pasó exactamente lo mismo, no había caso de volver a reproducirla.

Ya tiempo ha pasado desde entonces y ahora que revives el post he hecho algunos cambios rápidos y simples al código inicial para que funcione.

Código:
retroceder = function (lamov) {
 ahora = 0;
 this.onEnterFrame = function() {
  if (ahora == 0) {
   currf = lamov._currentframe;
   if (currf>1) {
    currf -= 1;
    lamov.gotoAndStop(currf);
   }
  }
 };
};
Eso en el fotograma y lo siguiente en el botón de replay

Código:
on (release) {
 ahora = 1;
 _root.play();
}
  #3 (permalink)  
Antiguo 28/12/2005, 19:12
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 8 meses
Puntos: 406
Hola coke_135:
Haz tu animación en un MC y coloca en el primero y último frame un stop();
Lo pones en el escenario y le das como nombre de instancia: clip, lo selecciona y le pones éste código:
onClipEvent (enterFrame) {
if (_root.retroceda==true) {
prevFrame();
if (_currentframe==1) {
_root.retroceda=false;
}
}
}

Crea 2 botones en el de avanzar coloca éste código:
on (release) {
with (Clip) {
gotoAndPlay(_currentframe);
}
}
Y en el botón retroceder:
on (release) {
_root.retroceda=true;
}
Crea otra capa y en el primer frame escribe éste código:
var retroceda=false;

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #4 (permalink)  
Antiguo 29/12/2005, 09:45
 
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 7 meses
Puntos: 0
Hola a los dos:

Bandit, gracias por tu código pero tengo toda la animación en varias capas y todas sin meter en movie clips, así que ahora creo que ya no puedo convertir todo a un solo mc. Si no, haría desde cero todo otra vez, pero me sería muy costoso. Gracias de todas formas.

Mauri, he cambiado el código que tenía por el que has posteado, y aunque ahora te deja volver a iniciar, se ha perdido el efecto de rebobinado que si aparecía con el otro codigo.

Me refiero al efecto en el que la animacion iba hacía atrás (en mi caso es una tapa que se cierra). Ahora la tapa se abre, y al darle click vuelve al principio de golpe.

Espero haberme explicado :P.

Un saludo y gracias por vuestro interés.
  #5 (permalink)  
Antiguo 29/12/2005, 10:03
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 8 meses
Puntos: 406
Para convertirlo en MC no es necesario hacerlo de nuevo, simplemente vas seleccionando cada capa y le das con el derecho sobre los frames seleccionados y en la ventana que aparece le das a Copiar fotogramas, creas un MC y en el primer frame le das con el derecho y activas: Pegar fotogramas, eso haz con todas las capas.

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #6 (permalink)  
Antiguo 29/12/2005, 10:11
Avatar de Mauri1  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago de Chile
Mensajes: 558
Antigüedad: 21 años, 4 meses
Puntos: 0
Hola

Pues a mí me funciona de lo más bien, aquí te dejo los archivos

Ver - Descargar

  #7 (permalink)  
Antiguo 29/12/2005, 13:08
 
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 7 meses
Puntos: 0
Me estoy volviendo un poco loco xDDD.

Bandit, ya hice lo que me dijiste pero no puedo probarlo ya que al pulsar el boton de inicio me dice:

"Error: No se pudo efectuar la acción 'with' porque el objeto especificado no existe."

He creado todo desde cero dentro de un MC. Lo he puesto en el escenario y le he puesto Clip (también he probado clip, no se si flash es sensible a mayusc/minusc) como nombre instancia y le he puesto el codigo.

Luego, dentro del MC he creado una capa en la que he puesto stop(); al inicio y final y dos botones a los que añado el código que me dijiste, y me da ese error.

Si quito el stop(); del principio, la animacion llega al final y al darle al boton de rebobinar funciona.

Mauri, tu fla me da error al abrirlo:

"Formato de archivo inesperado".


Gracias por vuestra paciencia. Salu2
  #8 (permalink)  
Antiguo 29/12/2005, 13:16
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 8 meses
Puntos: 406
Si lo haz hecho como te expliqué tiene que funcionarte, debes de haber cometido algún error, revísalo.

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #9 (permalink)  
Antiguo 29/12/2005, 13:17
Avatar de Mauri1  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago de Chile
Mensajes: 558
Antigüedad: 21 años, 4 meses
Puntos: 0
Ahora si, estaba en version 8, lo deje para mx 2004

Descargar

  #10 (permalink)  
Antiguo 29/12/2005, 13:58
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 19 años
Puntos: 0
también prueba esta función, más facil de comprender
Código PHP:
/*CODIGO ACTION SCRIPT*/
retroceder = function (lamov) {
    
lamov.onEnterFrame = function() {
        if (
this._currentframe 1prevFrame(); else delete this.onEnterFrame;
    };
}; 
si el fotograma actual es mayor que el primero, entonces que retroceda :D
__________________
Si digo que soy mentiroso. ¿Lo soy?
  #11 (permalink)  
Antiguo 29/12/2005, 14:11
 
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 7 meses
Puntos: 0
Ok Mauri, ahora si me funciona. Había cometido un error, y había pegado el código del botón de rebobinar con el de iniciar :P. ¡Perdón por las molestias!

Bandit, el tuyo también me funciona ahora. El código de "Inicio" y "Rebobinar" lo había metido en dos botones dentro del MC por eso no encontraba "Clip" el with al ejecutarlo, ya que la instancia "Clip" estaba fuera del MC. Al ponerlo fuera, ya funciona. No se si será esa la explicación, pero así funciona.

¡Un saludo a los dos y muchísimas gracias!
  #12 (permalink)  
Antiguo 29/12/2005, 16:00
Avatar de Mauri1  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago de Chile
Mensajes: 558
Antigüedad: 21 años, 4 meses
Puntos: 0
Me alegro que hayas podido solucionarlo

Última edición por Mauri1; 29/12/2005 a las 16:35
  #13 (permalink)  
Antiguo 29/12/2005, 21:29
 
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 7 meses
Puntos: 0
Ya estoy aquí para molestar un poco más... xDDD.

Os cuento, una vez acabado el anterior flash he decidido añadirle sonido. He seguido los pasos que comentaba bandit en algún otro post; importar a biblioteca el sonido, vincularlo a actionscript llamandolo "musica" y llamarlo desde el primer frame con el código:

Código:
sonido = new Sound();
sonido.attachSound("musica");
_root.sonido.stop();
_root.sonido.start(0, 999);
Funciona OK, pero claro, al darle a rebobinar, se vuelve a ejecutar al actionscript y el sonido se corta y vuelve a comenzar. Me gustaría que solo se ejecutara la primera vez y no volviera a hacerlo, en todo caso que hiciera un loop al llegar al final del sonido (2 minutos).

He pensado en declarar una variable a 0, meter el código anterior en un if y dependiendo del valor de esa variable, cambiandole el valor la primera vez que pase, se ejecute o no. Pero vamos, son pruebas importadas de mis conocimientos de C+ y parece que ActionScript no me hace mucho caso :P.

¿Una última ayuda por favor?

Salu2!!
  #14 (permalink)  
Antiguo 30/12/2005, 07:07
Avatar de Mauri1  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago de Chile
Mensajes: 558
Antigüedad: 21 años, 4 meses
Puntos: 0
Coloca esto en el primer frame

Código:
_root.onLoad = function() {
 sonido = new Sound();
 sonido.attachSound("musica");
 sonido.start(0, 2);
};
  #15 (permalink)  
Antiguo 30/12/2005, 07:43
 
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 7 meses
Puntos: 0
Funciona perfecto Mauri. Gracias por la ayuda.

Que empecéis bien el año!!

Salu2!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:24.