Katze, entiendo que tu caja de texto "textovida" está en la película principal (donde están a su vez "lasie" y "pluto")
Al escribir en la película principal
Código ActionScript :
this.addEventListener(MouseEvent.CLICK, mostrar);
function mostrar(e:MouseEvent):void{
trace(this.Vida); //<--ESTE se refiere a una variable "Vida" de la película principal
textovida.text = String(pluto.Vida); //<--lógicamente muestra la vida de pluto
}
Si lo que quieres es que, al pulsar a "lasie" o a "pluto" te muestre la "vida" deberíamos hacer algo como
Código ActionScript :
pluto.addEventListener(MouseEvent.CLICK, mostrar); //<--el "listener" se lo aplico a "pluto"
lasie.addEventListener(MouseEvent.CLICK, mostrar); //<--OTRO "listener" para "lasie"
function mostrar(e:MouseEvent):void{
var perro:Perro=Perro(e.target); //<--usamos e.target para saber a quién se ha pulsado
//le tenemos que hacer una "conversión de cast" para decirle al compilador
//que e.target es de la Clase "Perro"
trace(perro.Vida); //<--Ahora sí
textovida.text = String(perro.Vida);
}
Vamos, el único modo de que la función "mostrar" conozca a quién se ha pulsado es a través de alguna propiedad del argumento "e" (que es de la clase MouseEvent)
Si no queremos añadir el listener a los perros podríamos añadirlo, tal y como lo tienes tú, a la película principal. En este caso, debemos
1.-comprobar que se ha clicado a un perro
2.-saber qué perro es
Código ActionScript :
this.addEventListener(MouseEvent.CLICK, mostrar); //<--el "listener" se lo aplico a la película principal
function mostrar(e:MouseEvent):void{
if (e.target is Perro){ //<--sólo si se ha pulsado a un perro
var perro:Perro=Perro(e.target); //<--usamos e.target para saber a quién se ha pulsado
trace(perro.Vida); //<--Ahora sí
textovida.text = String(perro.Vida);
}
}
Existe otro modo de hacerlo y es que sea la propia clase Perro quien se añada el listener y que refleje la vida en una caja de texto sobre la película principal. En ese caso deberíamos modificar el método "arrastrar" de la clase Perro
Código ActionScript :
private function arrastrar(e:MouseEvent):void{
this.startDrag();
trace(this.Vida);
MovieClip(parent).textovida.txt=String(this.Vida)
}
Vamos, nos referimos a la película principal como "parent". Como Flash no sabe si el Padre es un MovieClip o no, debemos (otra vez) hacer una "conversión de cast"
NOTA:Acostumbraté a
1.-Definir las Clases empezando la primera por Mayúscuas. Así es mejor el nombre de clase de "Perro" que el de "perro"
2.-Definir las variables empezando la primera por minúsculas. Así es mejor el nombre de "vida" que de "Vida"
El motivo es simplemente por costumbre, pero facilita mucho a la hora de leer código