2008-09-16 3 views
13

Je suis nouveau à ActionScript 3 et se sont heurtées à un problème:Qu'est-ce qui provoque l'erreur Flash # 2012 (Impossible d'instancier la classe)?

En utilisant Flex Builder 3, j'ai un projet créé avec quelques classes simples. Si le code de la classe A instancier un objet de classe B (classe B est dans son propre fichier source), le code compile très bien, mais je reçois l'erreur de temps d'exécution suivantes:

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

Quelqu'un peut-il expliquer ce que je suis mal faire?

Mise à jour: S'il vous plaît voir ma propre réponse ci-dessous (je ne pouvais pas voter au sommet depuis que je ne suis pas encore inscrit).

Répondre

21

je me suis finalement rendu compte que ce qui était erroné: classe B a été sous-classement de DisplayObject que je vois maintenant est une classe abstraite. La classe B n'a pas implémenté les membres abstraits, donc l'erreur. Je vais probablement changer la classe B en sous-classe de Sprite à la place.

Cela semble être un problème qui aurait dû être détecté par le compilateur. Est-ce que le fait que ce n'était pas la mise en œuvre méchante des membres abstraits peut attendre jusqu'à l'exécution? Même si c'est le cas, il serait bon d'au moins obtenir un avertissement du compilateur.

Merci pour les réponses de tout le monde, nous espérons qu'ils aider les autres qui se jettent dans l'erreur 2012.

+1

Il ne peut pas être pris par le compilateur car il n'y a pas de mot clé abstrait que le compilateur peut le ramasser sur. Il est imposé en lançant, d'où l'erreur. – NebulaFox

Questions connexes