環境設定をどこに書くか

Flash で環境に依存する設定を行いたいときのベストプラクティスは無いだろうか。

というのは、FlashCGI や、リモーティングなどの API に接続する際、その接続先 URI などの環境設定を、どこに持たせるかが悩みどころなのだ。ローカル、ステージング、実運用環境のそれぞれで叩く URI が異なるだけで、swf の作り方によっては、保守性に大きく影響が出てしまう。

環境設定の持たせ方

環境設定の持たせ方は大きく 2 つに分けられる。

  • swf に埋め込む
  • XML や FlashVars で外部から与える

swf に埋め込む

おそらく最も一般的な手法。環境に依存する部分を変数として持たせ、環境に合わせて書き換えてパブリッシュする。ファイルを解析されない限り、URI などの情報は隠蔽される。ただし、環境が変わるごとにパブリッシュしなければならず、保守が難しい。

XML や FlashVars で外部から与える

環境設定を外部に出し、実行時に読み込む。HTML ソースや XML ファイルから URI などを見られてしまう恐れがある。保守の面では、誰にでも修正ができ、容易。

グッドプラクティス

swf に API への相対パス、その他パラメータを設定し、パブリッシュにはビルドツールを使う。パブリッシュされた swf はローカルに構築されたサーバ環境に自動的に配置され、テストを必ず HTTP 経由で行う。ステージングや実運用環境用の swf 作成もビルドツールでワンクリック。といったところか。

しかし、現実的に考えると、swf には環境設定を一切書かずに、全て外部に持たせる方が単純かつ保守性が高い。うーむ、難しい。