Sunday, 6. December 2009

Cuando utilizamos Action Script 3, currentFrame es una propiedad que podemos utilizar en flash para referirnos al fotograma actual, o a un fotograma específico tanto en la linea de tiempo principal, como en la linea de un movieclip. Esto puede ser de gran utilidad cuando queremos realizar una acción en un momento específico de la reproducción o funcionamiento de la aplicación o animación que estemos desarrolando, refiriendonos a fotogramas puntuales y no a tiempo, u otros métodos.
Si utilizamos currentFrame sólo, nos estamos refiriendo a la línea de tiempo principal. Podemos probarlo de la siguiente forma:
Por ejemplo, queremos que se ejecute una acción en el fotograma 5:
addEventListener(Event.ENTER_FRAME, comprobarFotograma);
function comprobarFotograma(e:Event){
if(currentFrame==5){
trace("Hola");
}
}
Igualmente podemos asociarlo a un Movieclip. Supongamos que tenemos en el escenario un movieclip llamado miMC. Queremos realizar cierta acción sólo cuando este se empiece a reproducir. podemos hacerlo de la siguiente forma:
Leer el artículo completo…
VN:F [1.9.1_1087]
Rating: 7.1/10 (13 votes cast)
Saturday, 5. December 2009

En Flash, utilizando actionScript 3, podemos hacer que un movieclip, botón, campo de texto, o cualquier objeto instanciado en el escenario se desplace a través del mismo con el teclado.
This movie requires Flash Player 9
Ejemplo de movimiento de objetos con el teclado en Adobe Flash con ActionScript 3. Haz clic sobre la animación y usa las flechas del teclado para moverlo.
Si asociamos un movimiento a una tecla específica, lo más probable es que cuando probemos la animación/aplicación no funcione el movimiento en caso de que presionemos más de una tecla al mismo tiempo. Por esta razón, el movimiento debe ser encargado a funciones que se realicen en asociación con un evento de tiempo (TimerEvent) o de fotogramas (ENTER_FRAME).
Veamos el código que utilizamos y posteriormente lo abordamos paso a paso:
Para que el código funcione debe existir el objeto en el escenario, y tener como nombre de instancia, en este caso ‘objeto’.
var pressArriba:Boolean=false;
var pressAbajo:Boolean=false;
var pressIzquierda:Boolean=false;
var pressDerecha:Boolean=false;
var velocidad:int=2;
stage.addEventListener(KeyboardEvent.KEY_DOWN, presionaTecla);
function presionaTecla(e:KeyboardEvent) {
switch (e.keyCode) {
case 37 :pressIzquierda=true;break;
case 38 :pressArriba=true;break;
case 39 :pressDerecha=true;break;
case 40 :pressAbajo=true;break;
}
}
stage.addEventListener(KeyboardEvent.KEY_UP, liberaTecla);
function liberaTecla(e:KeyboardEvent) {
switch (e.keyCode) {
case 37 :pressIzquierda=false;break;
case 38 :pressArriba=false;break;
case 39 :pressDerecha=false;break;
case 40 :pressAbajo=false;break;
}
}
var tiempo:Timer=new Timer(10,0);
tiempo.start();
tiempo.addEventListener(TimerEvent.TIMER, mover);
function mover(e:TimerEvent) {
if (pressAbajo==true) {
objeto.y+=velocidad;
}
if (pressArriba==true) {
objeto.y-=velocidad;
}
if (pressIzquierda==true) {
objeto.x-=velocidad;
}
if (pressDerecha==true) {
objeto.x+=velocidad;
}
}
Leer el artículo completo…
VN:F [1.9.1_1087]
Rating: 8.4/10 (41 votes cast)
Wednesday, 2. December 2009

La clase Timer() de AS3 nos permite realizar una acción definida repetidas veces en función del tiempo. Esta clase nos permite controlar dos aspectos: cuántas veces queremos que se ejecute una acción, y cada cuanto tiempo queremos que se ejecute (en milisegundos). Esto puede ser útil para cualquier acción que queramos realizar repetidas veces, pero que no dependa de la velocidad de reproducción de nuestro proyecto.
Para esto creamos una nueva instancia de la clase timer (en la forma en que creamos una variable):
var temporizador:Timer=new Timer(1000,0);
Parámetros
El primer parámetro se llama delay, (en este caso 1000) corresponde al tiempo que debe trascurrir antes de que se ejecute la acción definida. Este parámetro se lo damos en milisegundos. Es decir, si queremos que suceda cada segundo, debemos darle 1000 (1000 milisegundos = 1segundo). Si queremos que suceda cada minuto, reemplazamos el 1000 por 60000. Esto hará que la acción se ejecute cada que transcurra el tiempo determinado.
El segundo parámetro se denomina repeatCount, (en este caso 0) y determina el número de veces que queremos que el temporizador ejecute dicha acción. Si ponemos 0, no habrá un límite, y la acción se ejecutará indefinidamente. Si queremos que se ejecute determinado número de veces, reemplazamos el 0 por un numero, que debe ser un entero positivo (Ejemplo: 10 o 200).
Leer el artículo completo…
VN:F [1.9.1_1087]
Rating: 9.3/10 (34 votes cast)