Como todos sabemos entre las ventajas nuevas que tiene AS 3.0 es poder controlar el FrameRate del Stage o escenario, y lamentablemente flash 8 (AS 2.0) carece de esa posibilidad.
Dado eso se me ocurrió hacer un controlador de FrameRate para una pelicula determinada que tengamos en nuestro Stage en flash 8. Utilidad concreta no sé que se le podria dar pero bueno ahi se las dejo, por ahi puede llegar a servir para algo.
Actionscript:
-
stop();
-
//creamos una variable tipo numeriaca para identificar
-
//nuestro setInterval
-
var intervalId:Number;
-
//como sabemos 1000 = a 1 segundo, usaremos ese dato como una constante
-
var duracion:Number = 1000;
-
//aca establecemos cuantos caracteres pueden
-
//escribir en el campo de texto
-
segundos.maxChars = 2;
-
//cramos la accion para nuestro boton
-
setear_btn.onRelease = function() {
-
//calculamos los frames por segundo
-
duracion = fps();
-
//volvemos a ejecutar el setInterval
-
comensarIntervalo();
-
-
};
-
//calculo de frames por segundo
-
function fps() {
-
return (1000/Number(segundos.text));
-
}
-
//el encargado de recorrer nuestra pelicula
-
function ejecutarAccion():Void {
-
ani_mc.nextFrame();
-
//condicional simple si llegamos al final
-
//de los frames de nuestro mc volvemos al comienzo
-
if (ani_mc._currentframe == ani_mc._totalframes) {
-
ani_mc.gotoAndStop(1);
-
}
-
}
-
//encargado de llamar al setInterval
-
function comensarIntervalo():Void {
-
if (intervalId != null) {
-
clearInterval(intervalId);
-
}
-
intervalId = setInterval(this, "ejecutarAccion", duracion);
-
}
-
//ejecutamos el codigo apenas se abre el swf
-
comensarIntervalo();
18 abril, 2011 at 10:22 am
buenisimo man!!! Esto lo estaba buscando desde hace bocha de tiempo... si consigo hacer lo que estoy pensando luego te muestro un uso practico de este script. Saludos y gracias por compartir tu conocimiento ;)