03. november 2006 - 17:02Der er
16 kommentarer og 1 løsning
kald af klasser indbyrdes
Jeg har to klasser Klasse 1 og klasse 2
Hvis jeg nu gerne vil kunne oprette objekter som kan kalde funktioner i hinanden indbyrdes - hvordan gøres dette så?
Jeg har forsøgt noget som jeg godt kan se kan opfattes som en uendelig løkke (ikke lykke), men er i tvivl om hvordan det så skal gøres: class Tklasse1 { private var klasse2:Tklasse2; }
class Tklasse2 { private var klasse1:Tklasse1; } Hvor det specifikke objekt defineres via en funktion.
Ved ikke om det blev noget vrøvl, men spørg, så skal jeg forsøge at forklare hvad jeg mener, hvis jeg kan ...
Jeg skrev følgende klasse: lass Tklasse1 { import Tklasse2; }
og fik følgende fejlmeddelelse: **Error** C:\\Tklasse1.as: Line 3: Import statements are not allowed inside class or interface definitions. import Tklasse2;
Det går fint, så længe klasserne hedder A og B, men hvorfor går det galt når jeg omdøber klasserne til TKlasse1 og TKlasse2?
class TKlasse1 { private var b:TKlasse2; public function TKlasse1() { b = new TKlasse2(this); b.shout(); } public function shout() { trace("jeg er A"); } }
class TKlasse2 { private var _a:TKlasse1; public function TKlasse2(a:TKlasse1) { _a = a; _a.shout(); } public function shout() { trace("jeg er B"); } }
Fejlen jeg får når jeg laver en 'check syntax' er: **Error** C:\www\tryout\TKlasse1.as: Line 1: The name of this class, 'TKlasse1', conflicts with the name of another class that was loaded, 'TKlasse1'. class TKlasse1 {
Hmm det ser ud til at alting faktisk virkede fra første færd af - problemet var at jeg stolede for meget på 'check syntax' som åbenbart kræver at man laver et kald til klassen fra sin normale flashfilm før den virker for .as-filen også. Så det bliver noget med at rette i sin .as og så lige huske at køre et kald fra .swf før 'check syntax' virker rigtigt.
Kom med et svar begge to - I ledte mig helt sikkert på rette vej!
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.