Actionscript 3 FlashVars&;AS3

Actionscript 3 FlashVars&;AS3,actionscript-3,flash,flashvars,Actionscript 3,Flash,Flashvars,因此,我试图访问flash Var,但我一直遇到以下错误: 第27行1180:调用可能未定义的方法LoaderInfo 我已经尝试将下面的代码放在我的类内外,但从我收集的信息来看,它似乎认为“LoaderInfo”是另一个函数,而它不是 public function getFlashVars():Object { var paramList:Object = LoaderInfo( this.root.loaderInfo ).parameters; var myParam:S

因此,我试图访问flash Var,但我一直遇到以下错误:

第27行1180:调用可能未定义的方法LoaderInfo

我已经尝试将下面的代码放在我的类内外,但从我收集的信息来看,它似乎认为“LoaderInfo”是另一个函数,而它不是

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


Eli

从您喜欢的函数名和返回类型来看,您似乎在尝试实现以下功能:

function getFlashVars():Object{

    return root.loaderInfo.parameters;
}
此外,这对您来说已经是一个静态对象。您实际上不需要函数来获取这些参数

至少不是上面的那个。您可以通过以下方式获取它们:

root.loaderInfo.parameters.myParam1
root.loaderInfo.parameters.myParam2
root.loaderInfo.parameters.myParam3
...

从您的函数名和返回类型来看,您似乎在尝试实现以下功能:

function getFlashVars():Object{

    return root.loaderInfo.parameters;
}
此外,这对您来说已经是一个静态对象。您实际上不需要函数来获取这些参数

至少不是上面的那个。您可以通过以下方式获取它们:

root.loaderInfo.parameters.myParam1
root.loaderInfo.parameters.myParam2
root.loaderInfo.parameters.myParam3
...

您似乎忘记了导入
flash.display.LoaderInfo

但您也可以省略类型转换:


this.root.loaderInfo.parameters

您似乎忘记了导入
flash.display.LoaderInfo

但您也可以省略类型转换:


this.root.loaderInfo.parameters

如果您想要一种优雅的方式来使用FlashVar,您可以使用from。此类是FlashVar的包装器,因此可以在没有阶段的地方访问它们

您可以分别为每个flashvar设置默认值和类类型。结合FlashVarNames枚举类,您可以知道应用程序中使用了哪些FlashVar

您应该在主文件中实例化/配置FlashVar一次

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());
        }
    }
}

如果您想要一种优雅的方式来使用FlashVar,您可以使用from。此类是FlashVar的包装器,因此可以在没有阶段的地方访问它们

您可以分别为每个flashvar设置默认值和类类型。结合FlashVarNames枚举类,您可以知道应用程序中使用了哪些FlashVar

您应该在主文件中实例化/配置FlashVar一次

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());
        }
    }
}

@MartyWallace是的,我知道,但我不应该仍然得到这个错误。@MartyWallace是的,我知道,但我不应该仍然得到这个错误。