Toda "instancia" HEREDA de su clase genérica sus métodos
y propiedades. Pero en AS
podemos ampliar las posibilidades de todo objeto predefinido.
Supongamos que a nuestra pelota queremos darle un nuevo uso: por ejemplo
"aplastar hormigas" (ojo "amigos de los animales"
es sólo un ejemplo, no es algo que usualmente haga con una pelota),
esto no se hace usualmente con una pelota, no es una función
propia del objeto "pelota", y si queremos aplicar esta nueva
función a TODAS las pelotas del planeta tendriamos que configurar
a la "madre" pelota para que todas hagan lo mismo o tengan
al menos esa posibilidad. En AS
esto se logra con los prototipos (prototype) la cual es una propiedad
también, una propiedad que tiene todo objeto. En nuestro caso
podemos hacer esto:
Pelota.prototype.nuevafuncion= aplastarhormigas(){
hormigas=hormigas.plaggg
}
Espero se entienda: tomando la idea de HERENCIA podemos ampliar los objetos y sus posibilidades usuales. Podemos entender entonces el ejemplo del manual de AS de macromedia:
1. Creamos un objeto generico "circulo" con una variable "radio" partiendo de una función constructora
function Circulo (radio){
this.radio=radio // se usa THIS para asignar esta propiedad al mismo
objeto que la posee
}
2. Ponemos una instancia de éste nuevo objeto genérico. Nos ayudamos del operador new:
micirculo=new Circulo(5) //acabamos de ponerle un radio de 5
3. Ahora le creamos un prototipo:
Circulo.prototype.area=function(){
return Math.PI*this.radio*this.radio
}
4. Para comprobar si funciona puedes usar esto:
trace(micirculo.area());
Al menos a mi me salió. 78.5398163397448 :)
buena suerte y saludos!