13

私は ActionScript 3 を初めて使用し、問題に遭遇しました:

Flex Builder 3 を使用して、いくつかの単純なクラスを含むプロジェクトを作成しました。クラス A のコードがクラス B のオブジェクトをインスタンス化する場合 (クラス B は独自のソース ファイルにある)、コードは正常にコンパイルされますが、次の実行時エラーが発生します。

ArgumentError: エラー #2012: B クラスをインスタンス化できません。

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

更新:以下の自分の回答を参照してください (まだ登録していないため、一番上に投票できませんでした)。

4

3 に答える 3

21

私はついに何が悪いのかを理解しました。クラスBはDisplayObjectからサブクラス化されていましたが、これは抽象クラスです。クラスBは抽象メンバーを実装しなかったため、エラーが発生しました。代わりに、クラスBをスプライトからサブクラスに変更する可能性があります。

これは、コンパイラーが捕らえるべき問題のようです。抽象メンバーの実装が実行時まで待つことができるという意味ではなかったという事実はありますか?そうだとしても、少なくともコンパイラの警告が表示されると便利です。

みんなの答えに感謝します、うまくいけば、彼らはエラー2012に遭遇した他の人を助けるでしょう。

于 2008-09-16T02:58:42.993 に答える
2

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

クラスをインポートしていること、およびそのクラスへの参照がどこかにあることを確認してください(したがって、コンパイラーはそれをSWFに含めます)。

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

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

(しかし、あまり有用な情報ではありません)

マイクチャンバー

mesh@adobe.com

于 2008-09-16T00:44:12.537 に答える
0

他の誰かが作成したクラスを含め、そのクラスが Flash CS3 を使用し、あなたが Flex を使用している場合、またはその逆の場合、それぞれのコア ライブラリが異なり、両方に含まれていないものがあることに注意してください。2 つのリファレンス ドキュメントを確認してください。

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

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

于 2008-09-16T01:07:43.087 に答える