从类中获取FlashVars

时间:2012-01-19 21:41:48

标签: actionscript-3

我有一个班级设置,它看起来像这样:

package scripts
{
    import flash.display.MovieClip;
    import flash.display.Stage;

    public dynamic class Upload
    {
        public function Upload()
        {

        }

        public function getPostURL():String
        {
            return "test";
        }
    }
}

我正在通过以下方式实例化该课程:

var upload = new Upload();
var url:String = upload.getPostURL();

这很好用,我能够获取字符串,但是如何修改类才能返回FlashVars?我一直在寻找几个小时,但一直没能找到答案。

我正在使用此设置FlashVars:

<param name=FlashVars value="var=test" />

2 个答案:

答案 0 :(得分:1)

对于添加到舞台的任何实例,您可以使用以下代码: root.loaderInfo.parameters.var

<强>更新

package scripts
{
import flash.display.Shape;
import flash.events.Event;

    // If you want to use an Uplaod class like a container, 
    // then you should extend it from Sprite.
    public dynamic class Upload extends Shape
    {
        protected var _url:String = "";

        public function Upload()
        {
            super();
            addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
        }

        protected function addedToStageHandler(event:Event):void
        {
            _url = root.loaderInfo.parameters.var;
        }

        public function getPostURL():String
        {
            return _url;
        }
    }
}

Main.as

var upload = new Upload();
addChild(upload);
var url:String = upload.getPostURL();

或者没有Upload类的其他变体。在Main.as

var url:String = loaderInfo.parameters.var;

答案 1 :(得分:1)

请确保将FlashVars包含在src的{​​{1}}参数以及您使用的<embed>标记中,例如:

<param>

可以通过<embed src="file.swf?var=test" /> 访问这些变量。

您可以阅读有关LoadInfo对象here的更多信息。