我正在尝试从另一个.as文件定位主.as文件(充当舞台的那个)中的一个变量。
public var stageRef:MovieClip = root as MovieClip;
或者
MovieClip(root)variable = 10;
似乎不想为我工作。它们都不会产生任何编译错误,但是当我尝试使用它们时,它们会给我一个 1009 错误,无法访问属性或空对象引用。关于我将如何做这件事的任何想法?提前致谢。
我正在尝试从另一个.as文件定位主.as文件(充当舞台的那个)中的一个变量。
public var stageRef:MovieClip = root as MovieClip;
或者
MovieClip(root)variable = 10;
似乎不想为我工作。它们都不会产生任何编译错误,但是当我尝试使用它们时,它们会给我一个 1009 错误,无法访问属性或空对象引用。关于我将如何做这件事的任何想法?提前致谢。
我的 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);
注意:考虑使用所有大写字母表示常量,而不是变量,在这种情况下,我使用所有大写字母来提高可读性。