1

これは奇妙な質問かもしれませんが、ActionScriptプロジェクトの開発者ごとにクラスで異なるデフォルト変数を効率的に(おそらく名前空間を使用して)持つ方法があるかどうか疑問に思っています。私たちは現在一連のFlashゲームに取り組んでいるのでお願いします:合計24。それぞれがシェルコンテナによってロードされます。シェルは、ロードするゲームのフラッシュ変数を受け取ります。私たちの開発環境(Flash / FlashDevelop)には、flashvarsがないため、ASの定数は、flashvarがない場合にロードするゲームを定義します。

/** Game to load during debugging if the game param is not set via flashvars. */
public static const DEFAULT_GAME:String = "gameName";

したがって、各開発者はこれを作業中のゲームに変更します。ただし、リポジトリ(svn)に変更をコミットする場合、開発者はこれを元に戻すか、変更を元に戻す必要があり、他の誰かが変更したときに、各開発者はこれをゲームに変更する必要があります。

Flash IDEのFlashvarsまたはユーザー固有のファイルに類似したデフォルトのパラメーターを指定して、コードがハッキーなデバッグ変数に影響されないようにする方法があるかどうか疑問に思います。Flexでは、htmlテンプレートでflashvarsを設定でき、各開発者が独自の公開フォルダーを持ち、svn:ignoreを使用できることを知っています。おそらく、各開発者に、ユーザーパラメータを定義するコミットされていないXMLファイルを作成させるだけですか?わからない、何かアイデアは?

4

5 に答える 5

5

開発者固有の構成ファイルは機能する傾向があります。

リポジトリに「デフォルト」構成を設定し、ファイル名に.defaultまたは.sampleまたは何かを追加します。開発者が初めてファイルをチェックアウトするときに、そのファイルをコピーして拡張子を削除し、誰にも影響を与えずに好きなだけカスタマイズします。そうしないと。

もっと良い方法はありますか?おそらく。しかし、私はそれを見つけていません。

于 2010-02-04T02:01:49.427 に答える
2

データをに保存するLocal Shared Objectと、各開発者はハッキーなものなしで独自のデフォルトを持つことができます。ローカルでのみアクセス可能なフォームを作成し、それを使用してデフォルトを表示/編集します。LSOにデータを保存します。アプリの起動時に、FlashVarsを確認し、存在しない場合はLSOを確認します。

于 2010-02-04T03:12:08.740 に答える
2

FLASHIDE内で条件付きコンパイルを使用できます。

コードの例を次に示します。

package{

    import flash.display.Sprite;

    public class Main extends Sprite {

        CONFIG::USER_A
        private static const PATH:String="user_a_path";
        CONFIG::USER_B
        private static const PATH:String="user_b_path";

        public function Main(){
            trace("current path >",PATH);
        }       

    }

}

次に、フラッシュIDEコンパイルオプション内に2つの定数を追加します。

CONFIG::USER_A
CONFIG::USER_B

そして設定値falseまたはtrueユーザー切り替え用

詳細はこちら

于 2010-02-05T09:44:02.247 に答える
1

さて、あなたはFDTでそれを行うことができます:

「コンパイル後にURIを開く」をチェックします(デバッグ構成パネル)

そしてURIを設定します:

bin/main.swf?test="this is a test"&test2="this is a test"

これはflashVarとして機能します。

于 2010-02-04T13:12:16.777 に答える
0

いくつかの解決策があります。プログラミングの観点からは、「LocalConfig.as」と呼ばれる別の静的クラスを用意することをお勧めします。

元の.asファイル内。(擬似コード)があります:

import common.LocalConfig;
...
public static const DEFAULT_GAME:String = LocalConfig.gameName;
...

}

静的クラスを使用して簡単にしましょう(擬似コード):

// Static class:
 package
{
    public class LocalConfig
    {
        public static var gameName:String = "Game1";


        public function LocalConfig()
        {}
    }
}

次のステップでは、ソース管理でプロジェクトのcommon / LocalConfigフォルダーにチェックインします。次に、これをローカルマシンに設定して、チェックアウトを無視し、ローカルユーザーマシンに存在しないようにします。

最後に、ソース管理プロセスから分離されたプログラマーのローカル「グローバルインクルード/コモン/」フォルダーにそれを配置します。

編集:

シングルトンクラス参照を削除しました。Staticクラスを使用するだけで十分です。

于 2010-02-04T04:03:32.547 に答える