在2个actionscript3文件(.as)之间传递变量

时间:2012-04-19 13:49:05

标签: actionscript-3

如何在2个actionscript3文件(.as)之间传递变量?

我有一个主fla文件和3个文件,每个类都有一个... 我在AS2中有一个基本的知识,但在AS3中没有太多知识

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您似乎正在尝试从Flash中的任何位置访问某些变量。一种方法是使用静态方法和变量创建一些类。例如:

package somenamespace {

    class Registry {

        static private var something_:String;

        public function get something():String {
            return something_;
        }


        public function set something(v:String):void {
            if (something_ === v) return;
            something_ = v;
        }

    }

}

然后您可以从Flash中的任何位置访问此变量:

Registry.something = "example";

答案 1 :(得分:0)

在类之间传递数据的正确方法是通过引用传递它。这比使用全局范围维护数据更好,因为它允许您解耦类。

如果没有看到您尝试传递的类和数据,很难给出具体的建议,但这是一个使用文档类(Main.as)和子类(Child.as)的简单示例:

Main.as:

package {
    class Main extends MovieClip
    {
        private var someData:String;
        //constructor
        function Main()
        {
            //create the data
            someData = "my string";

            //create an instance of child
            var child:Child = new Child(someData);
        }
    }
}

Child.as:

package {
    class Child
    {
        private var someData:String;
        //constructor
        function Child(initData:String)
        {
            someData = initData;
            trace(someData); // my string
        }
    }
}

在您的情况下,您需要一个控制器类来实例化您拥有的类并管理它们之间的关系。这将是上面Main类的变体,实例化所有三个类并提取和传递它们的数据。