Hej Alle,
-Går lige til sagen:
Jeg har en mainclass hvor jeg instantierer en anden class - nu vil jeg så gerne, fra min instantierede class, kalde en funktion oppe i min mainclass - men hvordan gøres dette.
har prøvet movieClip(parent).somefunction() (og mange andre) uden held...
pft
4 kommentarer
Edit,
Fandt løsningen - jeg skulle første adde min class to stage (den extender movieclip)
Dog kunne det være fint hvis det ikke var nødvendigt at adde den til stage for at kalde funktioner i mainclass'en
Grunden til at du ikke har held med 'parent' før du har added den til stagen er at den ikke har nogen parent før den er i en DisplayListe (added til stagen)
Mvh Jakob
..god weekend
Det er ikke særlig hensigtsmæssigt (eller eleganr) at "kravle" op igennem display hierakiet for at kalde funktioner (og det kræver, som du siger, at de er tilføjede til display listen).
En bedre måde at gøre det på er ved at give en reference til det objekt du ønsker at kalde en funktion på, f.eks;
Main.as;
Test.as
Ovenstående er ofte heller ikke specielt elegant (men det demonstrerer hvordan man kan give referencer til objekter). Den "rigtige" tilgang ville være at dit indeholdte objekt afsender en event når en tilstand ændres som dit "parent" objekt reagerer på. F.eks;
Main.as;
Test.as;
Den store forskel er at nu behøver Test objektet slet ikke vide noget om Main objektet, og Test objektet kan derfor eksistere i mange andre sammenhænge uden at være afhængig af en Main type.
(jeg ved godt at ovenstående eksempel er en smule kikset, men det illustrerer pointen...tror jeg)
Tak begge to for jeres svar
Især tak til Mat for de gode eksempler....