Un tipo de función que por una de esas cosas de la vida no aparece en la ayudad de Flash (debe ser un complot o algo por el estilo). Realmente, cuando descubrí lo que eran no lo pude creer. No por el hecho de que existieran, lo que no podía creer era que no me hubiera enterado antes y que nadie los mencionara.
Tienen 2 usos básicos aunque la sintaxis es prácticamente la misma. El primero es incluir acciones en un MC casi cómo si las estuvieramos escribiendo en el símbolo mismo, pero con la ventaja de que son funciones, es decir se las aplicamos a 50 MCs distintos con el mismo for que los creamos. La otra es similar a una propiedad.
Empecemos por el principio. El código que escribo a continuación crea MCs que actuarán como botones apartir de un prototipo, la sintaxis es lo suficientemente simple como para que no necesite ninguna explicación, aunque en la biblioteca tenemos un MC con un cuadro de texto (llamado texto) cuyo nombre de exportacion es
BotonCódigo :
MovieClip.prototype.comportamientoBoton = function (nombre) {
this.texto.text = nombre;
this.onRelease = function () {
trace ("Soy el boton: " + nombre);
};
};
for (i = 1; i <= 5; i++) {
this.attachMovie ("Boton", "boton" + i, i);
_root["boton" + i]._x = (_root["boton" + i]._height + 30 * i);
_root["boton" + i].comportamientoBoton (("Boton" + i).toString ());
}Nada difícil, pero no hay que olvidarse de usar el this antes de los eventos como release y enterFrame.
La segunda forma de usarlos es para crear por ejemplo el hitTest o propiedades de ese tipo. Básicamente, ponés todas las acciones y uno o más returns. Estos prototipos llenan cierto vacío que las funciones (creo) no tocan, como poner un enterFrame dentro de la función.
Si te interesa te puedo mostrar un ejemplo del uso de prototipos en una función similar al hitTest.