2008-09-16 14 views
13

私はActionScript 3を初めて使用しており、問題が発生しました。Flashエラー#2012の原因(クラスをインスタンス化できません)?

私はFlex Builder 3を使用して、いくつかの簡単なクラスのプロジェクトを作成しました。クラスAのコードは(クラスBは、独自のソース・ファイルである)クラスBのオブジェクトをインスタンス化する場合、コードは罰金コンパイルが、私は、次の実行時エラーを取得:

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

誰かが私は何を説明することができます間違っている?

更新:下記の私自身の答えを参照してください(私はまだ登録されていないので、私は上に投票できませんでした)。

答えて

2

これは、通常、クラス情報がSWFに含まれていなかったことを示します。

クラスをインポートしていることと、そのクラスへの参照がどこかにあることを確認してください(コンパイラによってSWFに組み込まれるようになります)。

ところで、ここでは、ランタイムエラーコードは次のとおりです。

http://livedocs.adobe.com/flex/201/langref/runtimeErrors.html

(あまり有用ではない情報が)

マイク室が

[email protected]

0

それは価値があります他の人が作成したクラスを含めてFlash CS3を使用していて、Flexを使用している場合やその逆の場合eのコアライブラリはそれぞれ異なり、いくつかは両方に含まれていません。確かに2つのリファレンスドキュメントをチェックアウト:

CS3:http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/

フレックス:http://livedocs.adobe.com/flex/2/langref/

21

私が最終的に間違っていたものを実現します。クラスBは、私は今、抽象クラスである参照のDisplayObjectからサブクラス化されました。クラスBは抽象メンバを実装していないため、エラーです。私はおそらくクラスBをSpriteのサブクラスに変更するでしょう。

これはコンパイラによって検出されたはずの問題のようです。抽象メンバの実装を意味するものではなかったということは、実行時まで待つことができますか?たとえそうであっても、少なくともコンパイラの警告を得るのは良いことです。みんなの答えを

おかげで、うまくいけば、彼らは、コンパイラが上でそれを拾うことができますというキーワードアブストラクトがないので、それは、コンパイラによってキャッチできないエラー2012

+1

に実行他人を助けるだろう。それは投げることによって強制され、したがってエラーです。 – NebulaFox

関連する問題