Forskellen mellem Document class og manuel oprettelse
Hej eksperter.Jeg har et projekt, hvor min Main.as klasse bliver initialiseret/erklæret via Document Class. Konstruktøren bliver kørt og kører koden
public function Main() {
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
baggrund = new Baggrund();
}
Dvs. [Flash]->[Main, extender MovieClip]->[Baggrund, extender Main]
Det compiler - men er ikke så hensigtsmæssigt konstrueret, da Main's konstruktør bliver kaldt hver eneste gang, en underklasse bliver kaldt. Dvs. at den går ind i en uendelig løkke.
Hvis jeg havde lavet det på den "gammeldags" måde, ville jeg ha' fjernet new-linien og ha' skrevet dette i timeline, frame 1:
var main:Main = new Main();
main.opretBaggrund(); <-- Kør kun metoden 1! gang
Problemet med koden er blot at stage.ScaleMode-kommandoerne så af ukendte årsager ikke fungerer længere og melder "TypeError: Error #1009: Cannot access a property or method of a null object reference."
Hvorfor sker dette? Burde de to erklæringstyper ikke være ens? Main.as extender jo MovieClip og de fornødne includes ER angivet Og hvordan sørger jeg så for at ha' en initialiseringsmetode, der kun kører 1 gang, uanset om der oprettes subclasses eller ej?
