Scour Design. Tutoriales de Flash, ActionScript, CSS, Photoshop, ImageReady...

\n"; } } } lecturas();

          


Crear y colorear instancias en tiempo de ejecución

      

Autor: Carlos Carmona

Con esto, lo que hacemos es que cada vez que se lea un nuevo fotograma (por defecto son 12 fps), se le asignará al objeto un nuevo color al azar. Con esto hemos terminado de editar el Movie Clip. Volvemos a la línea principal de tiempo (_root).

Tutorial

Una vez en la línea principal de tiempo, seleccionamos el primer fotograma (vamos, el único que hay... :P), click derecho del ratón sobre él y nos vamos a acciones, y escribimos:

//Estas líneas solo se ejecutarán al cargar la película
//(onLoad), es decir, una sola vez.
_root.onLoad = function (){
        /* Nos declaramos 2 variables, i que la usaremos para
        los nombres de instancia, y borrar, que la usaremos para
        ir borrando instancias cuando lleguen al número límite de copias
        que queramos que haya en la película */
        var i = 1;
        var borrar = 0;
        //Con esto lo que hacemos es quitar el puntero del ratón.

        Mouse.hide();
}
//La función dibuja, creará en el escritorio las copias del
//objeto que nos acabamos de crear
function dibuja (){
        //La variable i nos servirá para dar nombres de instancia
        //únicos a cada copia del objeto, dado que cada copia debe tener
        //un nombre distinto y la variable i se incrementa en cada pasada.
        i++;
        //attachMovie sirve para crear copias de un elemento de la biblioteca,

        //es decir, que no se encuentra en el escenario, si tuvieramos una
        //instancia en el escenario, usariamos duplicateMovieClip
        //en puesto de attachMovie.
        /* Su estructura es:
        attachMovie (idNombre, NombreNuevo, Profundidad) donde
        idNombre es el nombre del clip en la biblioteca.
        NombreNuevo es el nuevo nombre que le vamos a dar a la instancia
        cada instancia debe tener nombre propio único.
        Y la profundidad es el orden de apilamiento en la línea de tiempo,
        también debe ser unico para cada instancia */
        attachMovie("linea","linea"+i,i);
        /* Con las siguientes 2 líneas lo que hacemos es que el objeto
        ocupe la posición del puntero del ratón, ya que a las coordenadas
        horizontal (_x) y vertical (_y) del objeto le damos la posición
        horizontal (_xmouse) y vertical (_ymouse) del ratón */

        _root["linea" add Number (i)]._x = _root._xmouse;
        _root["linea" add Number (i)]._y = _root._ymouse;
        //Fin de la función.

}
//Cada vez que se lea un fotograma nuevo, "onEnterFrame"
//(12 fps para el caso)
_root.onEnterFrame = function(){
        //Incrementamos la variable borrar
        borrar++;
        /* Si la variable borrar es menor que 100 ejecutamos la función
        dibuja para crear una nueva instancia en la película */
        if (Number (borrar) //Esta es la forma de llamar a la función, si tubiera parámetros

                //irían separados por comas dentro del parentesis, para el caso
                //no hay parámetros.
                dibuja();
                /* Si borrar ya ha superado los 100, es decir, si ya tenemos 100
                instancias del clip en el escenario */
        } else {
                // decrementamos la variable en 1.
                borrar -= 1;
                //Y borramos la instancia más antígua en el escenario, es decir,

                //i - 100
                removeMovieClip ("linea" add Number (i - 100));
                //Y volvemos a crear una nueva instancia, de modo que siempre se
                //mantengan 100 cópias en el escenario
                dibuja();
        }
}

Si queremos modificar el número de instancias que se van a crear en la película, en las líneas if (Number (borrar) < 100) { y removeMovieClip ("linea" add Number (i - 100)); cambiamos el 100 por el número de instancias que queramos.

Y con esto hemos terminado.

Si lo deseas, puedes descargarte el archivo del ejemplo aquí.

Un saludo.

Scour Design ™ Todos los Derechos Reservados © Carlos Carmona Xhtml 1.1 Strict Válido!CSS Nivel 2 Válido! Nivel Triple-A de Conformidad con las Directrices de Accesibilidad Web (WAI)