2011-01-23 30 views
0

ディレクトリ構造の間違ったレベルでサードパーティライブラリをインポートすると、Flash Builderでコンパイルの問題が発生するようです。ActionScript 3のパッケージ構造とディレクトリ構造

たとえば、あるレベルのライブラリをディレクトリツリーに挿入すると、パッケージエクスプローラでプレフィックスのルートレベルパッケージ(通常は「com」)が除外されます。または "ネット"。ソース自体の内容は変更されませんが、コンパイルエラーが発生します。したがって

  • が、それは1)大会やクラスのパッケージ構造(例えば、 "foo.bar.Class")は、そのパスの場所(例えば、FOOに/一致する必要があります2)言語の要件ですbar/Class.as)?

  • 言語要件の場合は、なぜが必要ですか?パッケージの構造は、ソースコードで既に指定されていて、各行の最初の3〜8列を非常に喜んで消費しているので、パッケージ構造を過度に決定しないでしょうか?

  • 言語要件ではない場合、私のコンパイルエラーは、Flash Builderによって規約が適用された結果ですか?

+0

AS3とOOPの基本について学びましょう。 –

+0

AS3の新機能は間違いありませんが、OOPの要件であるかどうかはわかりませんソースコードとファイル構造の両方でパッケージ(またはその言語に相当するもの)を二重に指定するための大規模なもの。私は実践的な大会のような習慣で価値があると思っていますが、これはコンパイラの要件であるというアイデアで少しの美的不快感を感じることを認めなければならないと思います。多くの冗長性を持たずに自分自身を編成できる言語があります。 –

答えて

1

これはActionScriptがJavaと共有する言語要件です。 Wikipedia article on Java packagesは、フィッティングの説明を提供しています:

Java言語 仕様は同じ名前を持つ2公表されたパッケージ の 可能性を回避するために、パッケージに 命名規則を確立します。 の命名規則では、 という一意のパッケージ名を作成する方法が記述されているため、広く配布されている パッケージには、一意の名前空間 が割り当てられます。これにより、 パッケージを別々に簡単に、 が自動的にインストールされ、 がカタログに登録されます。

私は、対応するフォルダ構造にクラスファイルを保つことによって、既存のフォルダ構造をインポートすることにより、(そのようなフレームワークおよび/またはコンポーネントなど)、完全または部分的なプロジェクトを組み合わせることが可能であることを追加する - のリスクなし名前の競合や既存のファイルの上書きなどがあります。また、大規模なコードベースで作業しているときに特定のクラスを見つけるのにも役立ちます。

+0

JLSが命名規則を参照するとき、それはコンパイラ要件をも意味するのでしょうか、それとも文字通りの意味で「慣例」を意味するのでしょうか?厳しいルールではない? –

+1

これは誤解を招くことがありますが、引用文は文脈から少し外れています。記事はもう少し長くなっていますが、主にどのように名前を付けるべきですか? 「慣習」という用語はそれを指します。一貫したファイル階層を維持することは*必須*です。偏差があるとコンパイルが失敗します。 – weltraumpirat

関連する問題