Comunidad de diseño web y desarrollo en internet online

Cómo frenar funciones en un swf principal desde un swf secundario

Citar            
MensajeEscrito el 23 Abr 2014 01:06 am
Buenas noches a todos,

Me he gastado un montón de tiempo intentando hacer esto, y bueno no he dado con el punto. En un inicio crei que todo se resolvería con el manejo del comando _root, pero no sucedió.

Dirigiendome al caso concreto, tengo un swf principal que tiene un cronómetro en cuenta regresiva.

Este flash me llama un flash secundario que tiene un juego. La idea es que si el tiempo se acaba me aparece un pop up que me dice que falle y debo reiniciar. Sin embargo si yo termino el juego antes de que termine el tiempo, este pop up no debe salir y eso no sucede.

El contador esta dentro de un movie clip, asi que entre las instrucciones que se dan cuando se cumple la condición de completar el puntaje en el juego, indiqué que este movieclip tuviera un visible=false, no funcionó, porque asi yo quite el movie clip la funcion del contador se sigue ejecutando. Entonces intente resetear desde el swf secundario la funcion que me ejecuta el cronometro, pero no lo hace.

Encontré en internet el manejo de clearInterval, pero el codigo que estoy usando no utiliza esta función.

Les comparto el código del cronómetro para que tengan una idea más clara.

Y ahi queda mi pregunta, ¿es posible desde un swf secundario frenar una funcion que se ejecuta en un swf principal?


Por otro lado, no deje el cronometro en el swf secundario, porque al abrir el swf principal no se visualiza el cronometro.

Gracias por la ayuda que me puedan prestar, :)

Código ActionScript :

////contador de tiempo
start_time = getTimer();
countdown = 30000;
onEnterFrame = function () {
   elapsed_time = getTimer()-start_time;
   count_down.text = time_to_string(countdown-elapsed_time);
};
function time_to_string(time_to_convert) {
   elapsed_hours = Math.floor(time_to_convert/3600000);
   remaining = time_to_convert-(elapsed_hours*3600000);
   elapsed_minutes = Math.floor(remaining/60000);
   remaining = remaining-(elapsed_minutes*60000);
   elapsed_seconds = Math.floor(remaining/1000);
   remaining = remaining-(elapsed_seconds*1000);
   elapsed_fs = Math.floor(remaining/10);
   if (elapsed_hours<10) {
      hours = "0"+elapsed_hours.toString();
   } else {
      hours = elapsed_hours.toString();
   }
   if (elapsed_minutes<10) {
      minutes = "0"+elapsed_minutes.toString();
   } else {
      minutes = elapsed_minutes.toString();
   }
   if (elapsed_seconds<10) {
      seconds = "0"+elapsed_seconds.toString();
   } else {
      seconds = elapsed_seconds.toString();
   }
   if (elapsed_fs<10) {
      hundredths = "0"+elapsed_fs.toString();
   } else {
      hundredths = elapsed_fs.toString();
   }
   if (elapsed_time>29999) {
      _root.reiniciar._visible = true;
      count_down._visible=0;   
      _root.boton1.enabled = 0;
      _root.boton2.enabled = 0;
      _root.boton3.enabled = 0;
      _root.boton4.enabled = 0;
   } else {
      return hours+":"+minutes+":"+seconds+":"+hundredths;

   }
}

Por laurakatze

13 de clabLevel



Genero:Femenino  

chrome
Citar            
MensajeEscrito el 23 Abr 2014 03:15 pm
Si el código que pusiste dices que está dentro de un MovieClip, este MovieClip debe tener un nombre de instancia, supongamos timer. Si timer lo pusiste en root, deberías hacer

_root.timer.onEnterFrame = null;

Si tu MC no se llama timer, usa el nombre de instancia que le hayas puesto

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Abr 2014 05:39 am
wOW me salvaste la vida, como siempre, Gracias sensei, funciono perfecto ;)

Por laurakatze

13 de clabLevel



Genero:Femenino  

chrome

 

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