サンプル: Stage をアクセス
Web Playerの配置

サンプル: Flash Vars

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

FlashVars からパラメータを取得したい場合,Actionscript で LoaderInfo オブジェクトを作成する必要があり,“parameters” プロパティにアクセスする必要があります。これはロードされたSWFファイルに提供するパラメータを表す name-value ペアを含んだオブジェクトです。

Assets フォルダの中に “ActionScript” というフォルダを作成します。次にフォルダの中に空の “FlashVars.as” テキストファイルを作成して,次のコードを挿入します。

ActionScript 3

package {
    import com.unity.UnityNative; 
    import flash.display.LoaderInfo;
        
    public class FlashVars {
        public static function Join(delimiter: String): String {
            var parameters: Object = LoaderInfo(UnityNative.stage.loaderInfo).parameters;
            var text: String = "";
            for (var key: String in parameters)
                text += (text.length ? delimiter : "") + key + "=" + parameters[key];
            return text;
        }
    }
}

Actionscript 関数は FlashVars を取得してname-value ペアを連結して Unity に渡すことが出来る文字列にします。関数をコールして戻されたパラメータのリストをパースして表データにします。

C#

string parameters;
Dictionary<string,string> paramTable;
    
parameters = UnityEngine.Flash.ActionScript.Expression<string>("FlashVars.Join('|')");
string[] list = parameters.Split('|'); 
paramTable = new Dictionary<string, string>();
        
foreach (string parameter in list) {
    string key = parameter.Substring(0, parameter.IndexOf('='));
    string val = parameter.Substring(parameter.IndexOf('=') + 1);
    paramTable.Add(key, val);
}

パラメータ文字列および表データは最初に定義されます。表データは FlashVars を含む文字列のキーとバリューのディクショナリです。次に Actionscript 関数がコールされて,name-value ペアはパラメータから抽出されてテーブルに追加されます。これで自身のアプリケーションからパラメータを読み込むことご出来ます。次のサンプルでは,いくつかの値が表示され,FlashVarsで定義された特定のシーンぎロードされます。

C

void OnGUI () {
    GUILayout.Label(" FlashVars = " + parameters);
    GUILayout.Label(" unitydebug = " + paramTable["unitydebug"]);
    GUILayout.Label(" deeptrace = " + paramTable["deeptrace"]);
    
    if (GUILayout.Button("Click here to load " + paramTable["scene"]))
        Application.LoadLevel(paramTable["scene"]);
}

最初にプロジェクトのビルドを行ってHTMLファイルを生成し,IEおよび他のブラウザ向けにFlashVarsを編集します(二つの異なる行)。

HTML

<param name="flashvars" value="unitydebug=false&amp;deeptrace=false&amp;scene=Scene1" />


最後にブラウザでHTMLファイルを開きプロジェクトを実行します。

サンプル: Stage をアクセス
Web Playerの配置