Comunidad de diseño web y desarrollo en internet online

tiempo

Citar            
MensajeEscrito el 13 Sep 2008 05:33 pm
Hola a todos, como andan???

bueno, mi duda es media tonta, pero no puedo conseguir q funcione.
Tengo este codigo en el fotograma 1 del escenario principal:

Código :

if(credito=2)
{
onEnterFrame = function () {


   var tomatiempo = getTimer();
   var seg = Math.floor(tomatiempo/1000);
   
   seg = String(seg%60);
   if (seg.length<2) {
      seg = "0"+seg;
   }
   var tiempo:String = seg
   contador_txt= tiempo;
}

}
credito=0


en el escenario, tengo 2 cajas de textos dinamicos, con nombre de variables:
contardor_txt que muestra la cantidad de segundos q transcurre
credito que es la cantidad de creditos q hay

a su vez hay un boton
que tiene el siguiente codigo:

Código :

on (release){
   credito++;
}


lo que quiero hacer yo, es q el tiempo comience a contar cuando la condicion se cumpla, y no a partir del momento en q comienza la pelicual; es como si nunca le diera importancia a la condicion....
bueno. espero me puedan ayudar.

saludos
y gracias

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

firefox
Citar            
MensajeEscrito el 13 Sep 2008 06:24 pm
Mira las condiciones de igualdad en flash se hacen con el signo "==" no con "=", la condición la debes crear dentro del onEnterFrmae, de lo contrario solamente chequeará la condición al inicio de la película, debes tratar de trabajar las variables numéricas o de cadena, pero no una variable para manejar ambos tipos de datos y cuando se quiere poner un string en un campo de texto se debe poner la propiedad "text", debe quedarte algo así:

Código ActionScript :

var credito:Number = 0;

this.onEnterFrame = function():Void{

   if (credito >= 2) {

      var tomatiempo:Number = getTimer();
      var seg:Number = Math.floor(tomatiempo/1000) % 60;
      var tiempo:String = (seg < 10) ? "0" + seg : seg;
      
      contador_txt.text = tiempo;

   }
};


Y en el botón:

Código ActionScript :

on (release){

   _root.credito++;

}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 13 Sep 2008 11:40 pm
hola, lo cambie y funciona, sin embargo, el tiempo comienza a correr cuando ejecuto la pelicula y no cuando los creditos llegan a 3...
yo kiero q empiece a contar el tiempo cuando lleguen los creditos a 3, o sea cuando se cumpla la condicion empiece a contar el tiempo????

q es lo q falta para esa condicion????

desde ya gracias por lo anterior....saludos

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

firefox
Citar            
MensajeEscrito el 14 Sep 2008 04:37 pm
Crea un documento nuevo y pega el código en el primer frame con un campo de texto en la escena con el nombre correspondiente y verás que no hay forma que se pueda iniciar el tiempo, debes tener en algún lado de tu película la variable declarada por error.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

msie7
Citar            
MensajeEscrito el 14 Sep 2008 10:05 pm
hola, mira, en este link, subi lo q me dijiste, fijate q si lo ejecutas y esperas un ratito antes de comenzar a sumar el credito, cuando este llega a 2, el contador de segundos te muestran los seg q pasaron desde q se inicio la pelicual.....

o sea q estoy poniendo algo donde no debo????

.fla: http://www.newevent.com.ar/prueba.fla

desde ya gracias por todo.
saludos

pd: se puede hacer q llegado un momento, es decir, cumplida una condicion, el tiempo se pare y deje de sumar y cumplida otra condicion vuelva a iniciarse?


saludos....gracias por todo

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

firefox
Citar            
MensajeEscrito el 15 Sep 2008 12:31 am
hola, mira, leyendo un poco, pude hacer lo mismo con menos lineas y q funcionara como yo queria, el codigo del fotograma quedo:

//variables
tiempo=0;
credito=0;

//funcion para contar el tiempo
frecuencia=setInterval(pepe,1000);

function pepe (){
if (credito>=2){
tiempo++
}
//detiene el intervalo
if (tiempo==3) {
clearInterval(frecuencia);
}
};


y listo, con eso ya funciona y ademas despues de 3 seg lo paro, pero puedo ponerle los segundos q quiero y ademas si kiero hago cuenta regresiva o sumo cada lo q yo quiero...

gracias igual por toda tu ayuda.

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

firefox
Citar            
MensajeEscrito el 15 Sep 2008 08:26 am
Me alegra que hayas resuelto, pero solo para que lo sepas, el flash que tienes no empieza a contar el tiempo desde que lo ejecutas como decías, si no cuando el crédito se igual o mayor que dos, tienes que obligatoriamente pulsar dos veces el botón:

Código ActionScript :

 if (credito >= 2) {


Al igual que en el primer código que tenías intentebas hacer la condición con el número 2, pero si no le decías igual o mayor, solo se cumpliría cuando fuera igual a dos.

Si querías que fuera 3 solo tenías que cambiar la condición:

Código ActionScript :

 if (credito > 2) {


Con setInterval lo puedes resolver, pero si quieres un tiempo exacto no es la via correcta ya que el setInterval depende del framerate de la película o si se carga el flash player puede ir desfasándose del tiempo real. Hay una mejor explicación de esto en la ayuda de flash.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 15 Sep 2008 02:33 pm
hola, disculpa q te moleste de nuevo, tengo una duda
yo quiero q sume x segundos, en este caso 5, cuando los seg lleguen a 5 q estes comiencen a bajar hasta 0 y una vez q llegue a 0, vuelva a sumar hasta 5, asi, sucesivamente, lo intente hacer, pero no funciona, q es lo q falta:

Código :


//funcion para contar el tiempo
frecuencia=setInterval(reloj,1000); 

function reloj (){
if (coin>=2){
tiempo++
}
//detiene el intervalo
if (tiempo==3) { 
    tiempo--;
}
else if (tiempo==0){
   tiempo++;
}
};



//variables
tiempo=0;
coin=0;


desde ya gracias.
saludos

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

firefox
Citar            
MensajeEscrito el 15 Sep 2008 02:46 pm
Si haces la condición con la variable tiempo, solo se restará o sumará cuando se cumpla la condición, para lograr esto es mejor utilizar una segunda variable:

Código ActionScript :

//variables
var tiempo:Number = 0;
var coin:Number = 0;
var suma:Number = 1;

//funcion para contar el tiempo
var frecuencia:Number = setInterval(reloj, 1000);

function reloj():Void {

   if (coin >= 2) {

      tiempo += suma;

      if (tiempo == 5) {

         suma = -1;

      } else if (tiempo == 0) {

         suma = 1;

      }
   }
}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

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