2009-03-28 12 views
7

私はいくつかのFlashコーディングで困った状況に遭遇しましたが、私のクライアントには、デバッグフラグと変数がすべて設定されていないわけではありません。 (これは、リリースサーバーなどの代わりにデバッグにリクエストを送信していた)Flash + AS3でのリリース/デバッグの設定

これは私の部分ではコードの構成が悪い部分でした。私はそれを解決しました。

しかし、Flashでは異なるビルド構成を設定できないようで、Actionscript Compileの設定では、何かのチェック/チェックを忘れるようなさまざまなスイッチが組み込まれています(OMG、デバッガを無効にするのを忘れました私と同じように起こるかもしれません。いずれにしても、私はリリース設定とデバッグ設定の間で手動でジャンプすることが容易になることがわかります。

他の開発者は、あなたのテスト設定と、あなたの上司/クライアント/誰に発行するビルド設定との間のエラープルーフジャンプにどのテクニックを使用しますか?

私はおそらく減速すべきだと知っていますが、私はどこにスイッチを置くことができるかを設定することを好むでしょう。私はちょうど長い休憩(Flash MX + 2004年の少し)の後にFlashに戻ってジャンプしています。

ああ、私はデバッグサポートを無効にしてインポートのパスワードを設定するという無駄を認識しています。私の目標はスクリプトの児童をプロジェクトから守ることです。デコンコンパイラはそのすべてをこなします.....

とにかく、ありがとう!

答えて

5

私はこのように、環境クラスを使用します。あなたのメインのActionScriptクラスに

public class MyEnvironment { 
    public static const DEBUG:Boolean = true; 
    public static const SERVER:String = 'localhost'; 
    // More here 
} 

インポートこれ、とあなたのヘルパー関数のすべては、それを参照してください。たとえば、デバッガ関数はMyEnvironment.DEBUGがtrueで、ネットワーク機能がMyEnvironment.SERVERに要求を送信する場合にのみ実行する必要があります。

私の設定では、これをMyEnvironment.asとして保存します。 (明らかに、クラス名は実際の生活では違うでしょう。)また、コピーをMyEnvironment.as-debugMyEnvironment.as-releaseと保存します。後者は異なる設定になります。次に、リリースビルドが必要な場合、私のビルドスクリプトはMyEnvironment.as-releaseMyEnvironment.as(元のものを上書き)にコピーし、再コンパイルします。それは、すべてのリリース設定をメインのActionScriptクラスにロードします。逆の場合、私はデバッグビルド用のスクリプトを実行します。

+0

ActionScript 3の公開設定をコードで制御することは可能ですか? ありがとうございます。 –

3

デバッグモードのときにビジュアルヒントを使用することをお勧めします。 DEBUGフラグが設定されていると、画面の一角に「デバッグモード」とバージョン番号などのTextFieldが表示されます。

最終テストをクライアントに送信する前に、DEBUGモードを無効にすることを忘れてしまいます。

確かにあなたのプロジェクトをどのように構造化するかによって異なります。別の答えで説明したように、アプリケーション全体を通してアクセス可能な高レベルの「グローバル」クラスにフラグを格納するとよいでしょう。

9

Flash CS4を使用している場合は、設定定数を使用できます。 [パブリッシュ設定| ActionScript3.0設定...]でそれらを見つけることができます|コンフィグ定数

あなたは:: PLAYERをDEBUGを追加した場合、あなたは、このようなコードを使用することができます:

config namespace DEBUG; 

//... code here ... 

DEBUG::PLAYER 
{ 
    trace("Player state here"); 
} 

今、あなただけの真と偽の間で定数を切り替えることができます。

+0

驚くばかり!しかし、この種のものはCS3では利用できないようですね。 –

+0

はい、私はそれがCS4の新機能だと確信しています。しかし、私は100%確実ではありません。 –

0

私は "TestingEnvironment"と呼ばれるflashvarを使用します。アプリケーションの起動時に、loaderInfo.parametersをチェックして 'true'(文字列リテラル、ブール値ではない)に設定されているかどうかを確認し、そうであればグローバル環境クラスインスタンスのpublic static var debugModeをtrueに設定します。それで私のクラスはすべて、テスト環境にあることが分かり、それに応じて行動します。

また、私はテストと生産に埋め込むために別のページコードを使用しているため、FlashVarが制作ページの埋め込みに決して終わらないことを期待しています。そしてもしそうなら、それは消すのが簡単で、再コンパイルする必要はありません。

関連する問題