Comunidad de diseño web y desarrollo en internet online

fin de pelicula

Citar            
MensajeEscrito el 16 Nov 2008 08:19 pm
hola amigos, como andan??' espero que bien....
bueno, ando teniendo una duda....q espero se pueda solucionar.
la cosa es asi:

yo tengo un pelicula, llamada juego.swf, al iniciarse ejecuta la función reiniciar(), que pone todas las variables y funciones en 0 y comienza a ejecutar 2 funciones:
intro();
findeljuego();


JUEGOS.SWF

Código :

/*------------------------------------------------------------------------------------*/ 
/* PRUEBA REINICIO*/ 
var frecuenciabarra:Number; 
var frecuenciabarrera:Number; 
var frecuenciabarrera2:Number; 
var frecuenciaaro:Number; 
 
var seg:Number; 
 
var tiempo_total:Number; 
 
var tiempobarrera:Number; 
var tiempobarrera2:Number; 
 
var coin:Number; 
 
var tiempoaro:Number; 
var suma:Number; 
 
var puntos:Number; 

var video:Number;

 
function reiniciar():Void { 
    
   //variables  
   seg = 0; 
    
   tiempo_total = _root.tiempo;    
    
   //---Poner la barra en escala 0  
   barra._xscale = 0; 
    
   tiempobarrera = 0; 
   tiempobarrera2 = 0; 
    
   coin = 0; 
    
   tiempoaro = 0;    
   suma = 1; 
    
   puntos = 0; 
   
   video=0;
    
   frecuenciabarra = setInterval(relojbarra, 1000); 
   frecuenciabarrera = setInterval(barrera, 1000); 
   frecuenciabarrera2 = setInterval(barrera2, 1000); 
   frecuenciaaro = setInterval(relojaro, 1000);
   frecuenciavideo = setInterval(findeljuego, 1000);
   
   
   intro();
   findeljuego();
}
reiniciar();
/*-------------------------------------------------------------------------------------*/ 


intro()

Código :

/*-------------------------------------------------------------------------------------*/ 
function intro():Void { 
loadMovie("Intro_Final.swf",clip_mc)
clip_mc._x = 0;
clip_mc._y = 0;
};
/*-------------------------------------------------------------------------------------*/ 

intro carga una pelicula externar llamada Intro_Final.swf, en un mc, llamado clip_mc

Esta se repite continuamente hasta q alguien inserte 2 coins (mediante un boton) o hasta que video, que es una variable que esta en la funcion findeljuego(), llegue a 60.

findeljuego()

Código :

/*-------------------------------------------------------------------------------------*/ 
/* TIEMPO ABRIR BARRERA*/ 
 
function findeljuego()
{   
      video++;
//detiene el intervalo  
   if (video == 60) { 
      
      clearInterval(frecuenciavideo); 
     enviarvideo()
   } 
} 
/*-------------------------------------------------------------------------------------*/ 
function enviarvideo():Void { 
loadMovie("intro.swf",clip_mc)
clip_mc._x = 0;
clip_mc._y = 0;
};
/*------------------------------------------------------------------------------------*/

findeljuego, llama a otra animación, llamada intro.swf, que SOLO SE REPETIRA UNA VEZ

La cuestion del problema es que yo quiero que intro.swf se repita SOLO UNA VEZ, y cuando este llegue final, le avise a juego.swf que comience de nuevo, es decir, q ejecute la funcion reiniciar().
Ese es el problema que tengo, y es q no se como avisarle que intro.swf finalizo y q ahora debe ejecutar la funcion reiniciar() que esta en en juego.swf.

Si alguien me puede dar una mano, se los agradeceria de verdad.

Desde ya muchas gracias.
Saludos

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

firefox
Citar            
MensajeEscrito el 17 Nov 2008 08:29 am
Ese es el problema que tengo, y es q no se como avisarle que intro.swf finalizo y q ahora debe ejecutar la funcion reiniciar() que esta en en juego.swf.


En el último fotograma de la intro pones la llamada a reiniciar, o mejor aún a una función en _root que haga lo necesario

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Nov 2008 10:08 am
ya lo hice a eso, en el ultimo fotograma de intro.swf, puse _root.reiniciar(), pero lo q pasa es q es externo, y es imposible q de esa manera pueda comunicarse con juego.swf y le diga q termino.

Eso es lo q yo quiero poder hacer, quer intro.swf, le avise a juego.swf q termino y que debe ejecutar reiniciar().

espero se entienda

gracias igual por tu respuesta.

saludos

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

firefox
Citar            
MensajeEscrito el 17 Nov 2008 10:17 am
Tip: en la función que quieres llamar pon:

trace(this)

Te saldrá la ruta absoluta que debes usar en cualquier llamada

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Nov 2008 12:30 pm
hice lo q me dijiste, pero en la salida no muestra nada.
y lo puse en todas las funciones y ninguna dijo nada:

Código :

/*------------------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------------------*/ 
/* TIEMPO ABRIR BARRERA*/ 
 
function findeljuego()
{   
      video++;
//detiene el intervalo  
   if (video == 60) { 
      
      clearInterval(frecuenciavideo); 
     enviarvideo();
     trace(this);
   } 
} 
/*-------------------------------------------------------------------------------------*/ 
function enviarvideo():Void { 
loadMovie("intro.swf",clip_mc)
clip_mc._x = 0;
clip_mc._y = 0;
trace(this);
};
/*------------------------------------------------------------------------------------*/


ademas la puse en intro.swf y tampoco me tiro nada.
que puedo estar haciendo mal???

gracias por tu ayuda.
saludos

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

firefox
Citar            
MensajeEscrito el 17 Nov 2008 12:45 pm
En opciones de publicación, Flash Tab, asegúrate que no tienes los trace suprimidos.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Nov 2008 01:03 pm
no, en la opcion que dice: "Omitir acciones de trace()", esta destildada, por lo cual no tendria q haber problema al mostrarse.

asiq probe una por una y me dio esto:

Código :

/*-------------------------------------------------------------------------------------*/ 
function findeljuego()
{   
      video++;
//detiene el intervalo  
   if (video == 60) { 
      
      clearInterval(frecuenciavideo); 
     enviarvideo();
     trace(this);
   } 
} 
/*-------------------------------------------------------------------------------------*/ 

SALIDA: undefined

[code]
/*-------------------------------------------------------------------------------------*/
function enviarvideo():Void {
loadMovie("intro.swf",clip_mc)
clip_mc._x = 0;
clip_mc._y = 0;
trace(this);
};
/*------------------------------------------------------------------------------------*/
SALIDA: _level0

que es lo q debo hacer ahora para poder avisarle q termino intro.swf y que juego debe ejecutar la funcion reiniciar()???

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

firefox
Citar            
MensajeEscrito el 17 Nov 2008 01:15 pm
El trace lo pones dentro de la función reiniciarjuego, copias la ruta que te sale, y luego en el último fotograma de intro.swf pones

larutaquecopiaste.reiniciar()

En la ruta que copias de la salida. cambia _level0 por _root

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Nov 2008 03:01 pm
gracias amigo.
si, lo he podido hacer, la ruta final quedo: _root._level0.reiniciar();
la cuestion ahora es mas de lo mismo, lo q quiero decir, q a juego.swf lo ejecuto desde otro swf. llamado emulador.swf
este llama al juego y el juego realiza lo demas.

la cosa es q de esta forma la ruta puesta: _root._level0.reiniciar(); entonces...seguimos complicados...

si podes darme una mano, te lo agradecira.

saludos

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

firefox
Citar            
MensajeEscrito el 17 Nov 2008 03:06 pm
_root y _level0 son lo mismo para el caso, así que usa _root.reiniciar();
Las rutas absolutas no cambián (mientras no se substituya el _root, claro), no importa desde que swf lo ejecutes

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Nov 2008 09:15 pm
Hola amigo, bueno, he intentado realizarlo, pero la verdad q ahora no funciona.

voy a detallarte para q lo pruebes.

Yo tengo un documento llamado BASE.SWF que dentro solo tiene un mc, con nombre de instancia: mc y en el primer fotograma dice:

Código :

loadMovie("juego.swf",mc)

con lo q abriria el archivo juego.wf.

JUEGO.SWF es otro documento, el cual tiene un mc, con nombre de intancia: clip_mc
y el cual tiene en el prime fotograma:

Código :

function reiniciar():Void {
   intro();
   findeljuego();
}
reiniciar();
/*-------------------------------------------------------------------------------------*/ 
function intro():Void { 
loadMovie("Intro_Final.swf",clip_mc)
clip_mc._x = 0;
clip_mc._y = 0;
};
/*-------------------------------------------------------------------------------------*/ 
function findeljuego()
{   
      video++;
//detiene el intervalo  
   if (video == 15) { 
      
      clearInterval(frecuenciavideo); 
     enviarvideo();
     trace(this);
   } 
} 
/*-------------------------------------------------------------------------------------*/ 
function enviarvideo():Void { 
loadMovie("-intro.swf",clip_mc)
clip_mc._x = 0;
clip_mc._y = 0;
trace(this);
};
/*------------------------------------------------------------------------------------*/

el cual como vera cargara varias swf, dependiendo de la condicion
y finalmente tengo un Intro_Final.swf q es solo una animacion simple y un -intro.swf

en este caso -intro.swf, tiene embebido un video y es quien debe informar cuando este termine, por lo tanto en el ultimo fotograma del video tiene el as q dice:

Código :

_root.reiniciar();



Bueno, la cuestion viene, que cuando yo ejecuto, juego.swf, este cumple con todas las condiciones y cuando llega el turno del video (o sea -intro.swf), al finalizar ejecuta la función reiniciar(), tal como lo deseo.

Sin embargo, si ejecuto base.swf, juego.swf, Intro_Final.swf y -intro.swf, se ejecutan bien, pero cuando llega la hora de q -intro.swf avise q finalizo y se ejecute reiniciar(), no lo hace, sino q sigue corriendo indifinidamente.

la cuestión es ahora como hacer para q ejecute esa función.

Bueno, espero haber sido claro, y puedas ayudarme.
Muchas gracias por todo lo hecho hasta ahora, solo falta este toke.
saludos

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

firefox
Citar            
MensajeEscrito el 17 Nov 2008 09:45 pm
Con una ruta absoluta, la función se llama. Agrega un trace

Código ActionScript :

function reiniciar():Void {
  trace("Me hace")
   intro();
   findeljuego();
}


Chequea si ves el trace en el panel de salida

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Nov 2008 10:09 pm
si, puse como me dijiste lo del trace, y tanto cuando ejecuto base.swf y juego.swf me sale....

como ademas tenia los trace de la otra vez me tiro:

undefined
_level0.mc.clip_mc
Me hace

entonces lo q hice fue, poner
_root._level0.mc.reiniciar();

en la -intro.swf (o sea donde va el video), y funciono

muchisimas gracias por toda tu ayuda y por tus rapidas respuestas, ademas de por el trace(this), q me salvo la vida.
muchas gracias.
adios

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.