2

Flash CS6を使用して開発しているFlashプロジェクト(AS3)があります。私はiOSデバイス、Androidデバイス、デスクトップ(air)、およびWebブラウザー(swf)用に開発しています。これまでのところ、たとえば、それぞれに公開するときに、わずかな変更を加えるだけで単一のコードベースを使用することができました-

ユーザーがflash.desktop.NativeApplicationクラスを使用するホームボタンを押したときにモバイルデバイスでアプリケーションを終了することを処理するコードがいくつかあります。明らかに、これはデスクトップやswfバージョンには必要ないので、これらを公開するときに、ホームボタンが押されるのをリッスンする関連するインポートステートメントとコードをコメントアウトします。

また、いくつかの設定をロードするconfig.xmlファイルがあります。swfの場合、これはswfファイルと同じディレクトリにないため、swfオブジェクトがロードされるときにこの構成ファイルの場所を渡します(flashvars)。ただし、他のすべてのバージョンでは、このファイルへのパスは単にconfig.xmlであるため、flashvarsのロードを処理するコードをコメントアウトします-

allFlashVars = LoaderInfo(this.root.loaderInfo).parameters;
webroot = String(allFlashVars["webroot"])

バージョン間には他にもいくつかの違いがあり、自分自身と他の開発者が覚えておくために、ドキュメントに必ずメモしておく同様の手順が必要です。

しかし、これは理想的な解決策ではないことを私は知っており、これを管理するためのより良い方法があるはずだと思います。

そのような状況に対処するための良いアドバイス/ベストプラクティスを知っている人はいますか?

ありがとう

4

1 に答える 1

1

私は2つの方法を知っています。

  • 条件付きコンパイルを使用します。この方法については、こちらで説明しています。
  • Factory パターンを使用します。メインクラスでファクトリを調整できます。プラットフォームごとにファクトリの設定が異なるメイン クラスを作成します。
于 2012-10-23T20:31:39.150 に答える