domingo, 18 de marzo de 2012

Hola, hoy les traigo un ejemplo de AS2 de como hacer un timer, algo que me costo un poco de trabajo encontrar, y espero poder ayudarles, el ejemplo realiza los siguiente, es un cronometro que decremento el tiempo a partir de un minuto y activa y desactiva un boton y muestra un mensaje al terminar el tiempo.


Esto espero les pueda ser se ayuda para muchos de sus proyectos:

Antes de todo, crear su archivo AS2, y crear lo siguientes componentes Necesitamos 3 textField o herramienta de texto (T), con los siguientes nombres de instancia Para mostrar el timer "contador_txt" Primer mensaje "myText" Segundo Mensaje "myText2" agregamos de componentes un boton y el nombre de instancia "btn"
//Variables que guardan el Interval
var intervalId:Number;
var intervalId2:Number;

//Funcion que llama el setInterval, quien optiene el tiempo
setInterval(myFunction, myTime);

//Funcion que muestra mensaje de comienzo del tiempo
function comieza (){
trace("Hello");
 myText.text = "Comienza tu tiempo" 
 clearInterval(intervalId);
}
//Funcion que desactiva el boton, muestra el mensaje de tiempo terminado y termina el timer
function desactiva(){
 myText.text = ""
 myText2.text = "Termino tu tiempo"
 btn.enabled = false;
 clearInterval(intervalId2);
 delete onEnterFrame;
 //contador_txt.text = ""
}

//Creacion de las variables setInterval 
//comienza al momento de cargar el archivo
intervalId = setInterval(comienza,0);
//Comienza al pasar los 60000 milisegundos = 1 minuto
intervalId2 = setInterval(desactiva,60000);

//Comenzar el timer al comenzar la carrera de frames
onEnterFrame = function () {
   //Esta linea es la que permite que se muestre el timer con decremento
   var tomatiempo = 1*61*1000 - getTimer();
   var seg = Math.floor(tomatiempo/1000);
   var min = Math.floor(seg/60);
   var hrs = Math.floor(min/60);
   seg = String(seg%60);
   if (seg.length<2) {
      seg = "0"+seg;
   }
   min = String(min%60);
   if (min.length<2) {
      min = "0"+min;
   }
   hrs = String(hrs%24);
   if (hrs.length<2) {
      hrs = "0"+hrs;
   }
   var tiempo:String = min+":"+seg;
   contador_txt.text = tiempo;
}

Si desean que el timer corra normal y no en decremento cambiar la siguiente linea
var tomatiempo = 1*61*1000 - getTimer();
cambiar por
var tomatiempo = getTimer();

viernes, 9 de marzo de 2012

Crear eventos listener dinamicamente con un for en AS3

Estoy aprendiendo AS3, y cosas como estas se me han complicado bastante encontrar, por eso les proporciono esta peque guia de como crear dinamicamente eventos addEventListener con un for y con un distinto nombre de funcion, espero les sirva

for(var h:uint = 1; h < 2; h++){
     this["p"+1].addEventListener(MouseEvent.CLICK, this["ver"+h])
}

Con esto estamos creando un evento listener que se llama "p1" y con la funcion de nombre "ver1"

ya solo basta con poner la funcion a la que hacemos referencia

function ver1(e:MouseEvent){
     trace("cree un listener dinamicamente con for");
}

Pueden agregar un bucle mas grande y crear mas funciones para que lo prueben mejor

Disculpen la terminologia pero soy nuevo en eso de Flash CS AS3