Ciao
Non funzionano perchè sono proprietà della Classe DisplayObject e non centrano nulla con la comunicazione tra Classi.
In una struttura di questo tipo:
ClassePrincipale > ClasseA > ClasseB
Le Classi ereditano proprietà e metodi dalla ClassePrincipale ma da una Classe secondaria non puoi chiamare una funzione presente su un "livello" superiore (sarebbe come se il "figlio" comanda sul "padre") ma puoi sovrascrivere con "override" una funzione da una classe che estende un'altra classe (modificare o aggiungere proprietà e metodi).
Codice PHP:
// ClassePrincipale estensione della classe MovieClip:
package
{
import flash.display.MovieClip;
public class Main extends MovieClip
{
private var classeA:ClasseA = new ClasseA();
private var classeB:ClasseB = new ClasseB();
public function Main()
{
trace("Main OK");
classeA.cambiaValore();
classeB.cambiaValore();
}
}
}
Codice PHP:
// ClasseA che contiene una funzione di tipo public (cambiaValore):
package
{
public class ClasseA
{
public var numero:Number;
public function ClasseA()
{
trace("ClasseA OK");
}
public function cambiaValore():void
{
numero = 10;
trace(numero)
}
}
}
Codice PHP:
//ClasseB estensione della ClasseA con una funzione override:
package
{
public class ClasseB extends ClasseA
{
public function ClasseB()
{
trace("ClasseB OK");
}
override public function cambiaValore():void
{
numero = 20;
trace(numero);
}
}
}
Come puoi vedere tutte le chiamate partono dalla classePrincipale ma la variabile "numero" dichiarata e valorizzata nella ClasseA viene ereditata dalla ClasseB come la funzione public "cambiaValore".
Dalla classe main la chiamata alla funzione sulla ClasseB modifica il valore della variabile "numero" anche se questa è istanziata e valorizzata nella ClasseA.
ciao