Flashプロジェクトとか設計の話

あまり話題になっているのをみかけないのでエントリーしてみましたが、FLASHerのみなさまはFlashのプロジェクトファイルを活用しているでしょうか?

扱うクラスの数が増え、パッケージの階層も深くなっていくと、目的のファイルを探すのも一苦労ですよね。僕は実際のパッケージ構成と同じになるように、プロジェクトファイル内にフォルダを作成し、扱うクラスファイルをすべて登録するようにしています。プロジェクトへの登録が、フォルダごと行えないのはAdobeさんに是非改善してほしいところですね。

プリッシュするflaファイルは右クリックして、「デフォルトのドキュメントにする」設定にしておけば、flaファイルが開いてない状態でも、プロジェクトウィンドウの「プロジェクトのテスト」ボタンをクリックすれば、swfをプレビューすることができるので便利です。

また、作成された.flpファイルをデスクトップ等すぐにアクセスできるところにエイリアス(ショートカット)を作成しておくというも、なかなか便利ですよ。

Windows版の場合はバージョン管理とやらも行えるらしいのですが、これは見た感じDreamweaverのチェックイン/チェックアウト機能みたいものでしょうか。個人でも扱えるバージョン管理ツールみたいなものだと良かったのですが。

さて、パッケージ構成の話が出た流れで書きますが、実はこれもどうしていいものなのかあまりよく分かりません。僕はパッケージ構成は基本的にhtmlでサイトを作る時と同じような感じでやっています。ルートにはindex.htmlとしてのMain.as(ドキュメントクラス)。そして例えばプロフィールというコンテンツがあるとすれば、profileというフォルダを作り、public設定したProfileMain.asを作成し、ドキュメントクラスから参照できるようにします。プロフィールパッケージ内の他のクラスは全てinternalで作成し、他のパッケージからアクセスできないようにしておきます。

ドキュメントクラス(Main.as)および、ドキュメントクラスから唯一参照が許される各パッケージ内の○○Main.asはシングルトンで作成し、それらへの参照が必要な場合はgetInstance()で参照します。そして同一パッケージ内で共通して扱う主要なデータは、この○○Mainクラスのprivateインスタンスとして集中管理できるように、getter/setterで常に最新の値を取得/代入できるようにしています。(いま気づいたけれど、この場合はgetter/setterもpublicじゃなくてinternalで良かったのかも)

といっても、実際のプログラムはこれほど綺麗に型通りに行えない場合も多々あるのですが。この辺りの話も皆さんどうしてらっしゃるのか、興味があるところです。

Flashをやっていると、ビットマップ処理とか3D表現とか数学系モーション?とか、そういうビジュアル的なインパクトが強い特定のフィールドに特化したプログラム技術/知識にばかりつい注目しがちになってしまいますが、実はこういうプログラム全体の構造を設計する力が実践では必要なんだよなぁーと痛感している今日このごろです。それにはやはりもっと手を動かさないとダメなんでしょうねー。ハー。