0

だから私はフラッシュ変数にアクセスしようとしていますが、私はこのエラーを受け取り続けました:

27行目1180:未定義の可能性があるメソッドLoaderInfoを呼び出します。

以下のコードをクラスの内外に配置しようとしましたが、収集したものから、「LoaderInfo」はそうではない別の関数であると考えているようです。

public function getFlashVars():Object {
    var paramList:Object = LoaderInfo( this.root.loaderInfo ).parameters;
    var myParam:String = paramList["myParam"];
    return myParam;
}

これを回避するにはどうすればよいですか?

エリ

4

3 に答える 3

3

のインポートを忘れたようですflash.display.LoaderInfo

ただし、おそらく型キャストを省略してもかまいません。

this.root.loaderInfo.parameters;

于 2012-04-16T05:03:54.020 に答える
0

エレガントな方法で flashvars を操作したい場合は、 TempleライブラリのFlashVars クラスを使用できます。このクラスは flashvars のラッパーであるため、Stage がない場所でもアクセスできます。

各 flashvar のデフォルトとクラスタイプを個別に設定できます。FlashVarNames 列挙型クラスと組み合わせると、アプリケーションでどの flashvars が使用されているかがわかります。

メインファイルで一度 FlashVars をインスタンス化/構成する必要があります。

package
{
    import temple.data.flashvars.FlashVars;

    import flash.text.TextField;

    public class FlashVarsExample extends DocumentClassExample 
    {
        private static const _LANGUAGE:String = 'language';
        private static const _VERSION:String = 'version';
        private static const _IS_DEMO:String = 'is_demo';

        public function FlashVarsExample()
        {
            FlashVars.initialize(this.loaderInfo.parameters);

            FlashVars.configureVar(_LANGUAGE, 'nl', String);
            FlashVars.configureVar(_VERSION, 1, int);
            FlashVars.configureVar(_IS_DEMO, true, Boolean);

            var txt:TextField = new TextField();
            txt.width = 550;
            txt.height = 400;
            this.addChild(txt);

            trace('FlashVars.getValue(_LANGUAGE) : ' + FlashVars.getValue(_LANGUAGE) + "\n");
            trace('FlashVars.getValue(_VERSION) : ' + FlashVars.getValue(_VERSION) + "\n");
            trace('FlashVars.getValue(_IS_DEMO) : ' + FlashVars.getValue(_IS_DEMO) + "\n");
            trace(FlashVars.dump());
        }
    }
}
于 2012-04-16T12:36:42.763 に答える
0

関数名と戻り値の型などから、これを実装しようとしているようです:

function getFlashVars():Object{

    return root.loaderInfo.parameters;
}

さらに、これはすでに静的オブジェクトです。これらのパラメーターを取得するための関数は実際には必要ありません。

少なくとも上記のものではありません。次のように取得できます。

root.loaderInfo.parameters.myParam1
root.loaderInfo.parameters.myParam2
root.loaderInfo.parameters.myParam3
...
于 2012-04-16T03:15:49.607 に答える