2008-09-16 7 views
13

Ich bin neu in ActionScript 3 und habe ein Problem:Was verursacht Flash Error # 2012 (kann Klasse nicht instanziieren)?

Mit Flex Builder 3 habe ich ein Projekt mit ein paar einfachen Klassen erstellt. Wenn der Code in der Klasse A ein Objekt der Klasse B instanziiert (Klasse B in einer eigenen Quelldatei ist), dann kompiliert der Code in Ordnung, aber ich habe den folgenden Laufzeitfehler:

ArgumentError: Error #2012: B class cannot be instantiated.

Kann jemand erklären, was ich bin falsch machen?

Update: Bitte beachten Sie meine eigene Antwort unten (ich konnte nicht nach oben abstimmen, da ich noch nicht registriert bin).

Antwort

21

ich endlich, was realisiert falsch war: Klasse B wurde Subklassen von Display, die ich jetzt eine abstrakte Klasse zu sehen ist. Klasse B hat die abstrakten Mitglieder nicht implementiert, daher der Fehler. Ich werde wahrscheinlich Klasse B stattdessen in Unterklasse von Sprite ändern.

Dies scheint ein Problem, das vom Compiler abgefangen werden sollte. Kann die Tatsache, dass es sich nicht um eine Implementierung von abstrakten Elementen handelt, bis zur Laufzeit warten? Selbst wenn es so wäre, wäre es nett, zumindest eine Compiler-Warnung zu bekommen.

Danke für Antworten aller, hoffentlich werden sie anderen helfen, die in 2012 Fehler führen

+1

Es kann nicht vom Compiler abgefangen werden, da kein Schlüsselwort abstrakt ist, dass der Compiler es bis auf abholen können. Es wird durch Werfen erzwungen, daher der Fehler. – NebulaFox