0

我正在尝试从另一个.as文件定位主.as文件(充当舞台的那个)中的一个变量。

public var stageRef:MovieClip = root as MovieClip;

或者

MovieClip(root)variable = 10;

似乎不想为我工作。它们都不会产生任何编译错误,但是当我尝试使用它们时,它们会给我一个 1009 错误,无法访问属性或空对象引用。关于我将如何做这件事的任何想法?提前致谢。

4

1 回答 1

1

我的 Main.as 类将变量公开。这是一个例子:

package
{
    import flash.display.Sprite;

    public class Main extends Sprite
    {
        public var YOUR_VAR_HERE:VARIABLE_TYPE = DEFAULT_VALUE;
        public function Main()
        {

        }

    }
}

DEFAULT_VALUE 是可选的。建议使用 VARIABLE_TYPE,如果未指定,则默认类型为 Object。

有很多方法可以将变量传递给另一个类。如果该类是在 Main 类中创建的,只需将变量传递给该类,如下所示:

var myOtherClass:OtherClass = new OtherClass(YOUR_VAR_HERE);

或者

var myOtherClass:OtherClass = new OtherClass();
myOtherClass.varReference = YOUR_VAR_HERE;

在第一种情况下,请确保构造函数需要一个变量。其次,确保 OtherClass 具有您可以访问和修改的公共变量 varReference。

新手程序员喜欢的另一种方式是静态(单例)变量:在 Main 类中指定您的变量:

public static var YOUR_VAR_HERE:VARIABLE_TYPE = DEFAULT_VALUE;

然后您可以通过引用 Main 类来访问 YOUR_VAR_HERE。像这样:

trace(Main.YOUR_VAR_HERE);

注意:考虑使用所有大写字母表示常量,而不是变量,在这种情况下,我使用所有大写字母来提高可读性。

于 2013-09-20T03:27:55.137 回答