3.0問題クラス定義に複数のプライベートなクラスを加えると、[コンパイルエラー]が起こってSWFファイルにパブリッシュ(コンパイル)できないことがあります。[パッケージと名前空間]の「パッケージの作成」の項参照)。他のActionScript(AS)ファイルのクラスからはアクセスできないため、このように呼ばれます[*1]。処理の記述}}問題は、以下のようなクラスPrivateClassIssueを定義してふたつのプライベートなクラスを加えると、つぎのように#1120の[コンパイルエラー]が発生することです(図001)。Professionalで報告されています。Professionalでふたつのプライベートクラスを定義した場合の[コンパイルエラー][*1]「プライベートクラス」というのは一般的な呼び名で、Flashの[ヘルプ]その他のドキュメントにそのような用語は使われていません。実際、クラスにアクセス制御の属性としてprivateは指定できません(プライベートなクラスに指定できるのは、デフォルトのinternalのみです)。プライベートなクラスは、ファイルを開けてみないと存在がわかりません。見通しのよさは失われます。[クラスの構成に関する提案]参照)。原因この[コンパイルエラー]#1120は、変数が宣言されていないことを意味します(図002)。ローカル変数のvar宣言がコンパイラに認識されていないようです。SDKでは、この問題は確認されていません。Professionalのバグである可能性が高いと考えられます。Professionalの[ヘルプ]に掲載された[コンパイルエラー]#1120対処法この問題を避けるには、プライベートなクラスのいずれかにObject以外の何らかのスーパークラスをもたせます。前掲のクラスPrivateClassIssueに定義したプライベートなクラスのひとつ(PrivateClass_1)にArrayクラスを継承させるだけで、[コンパイルエラー]は解消します。{}したがって、さしあたっての対症療法としては、空のダミーのクラスを定義し、プライベートなクラスのひとつにそれを継承させることが考えられます。つぎのスクリプト001は、前掲のクラスPrivateClassIssueに定義されたプライベートなクラスのひとつPrivateClass_1に、別に定義したら空のクラスDummyを継承させました。これで[コンパイルエラー]はなくなります(図003)。3.0]が選択された右横の[設定]ボタンをクリック)で[Strictモード]をオフにする方法もあります(図004)。変数の未宣言その他の厳密なコンパイルチェックがされなくなります。そのため、筆者としてはあまりお勧めできません。