在Actionscript 3中的类之间传递变量

时间:2014-06-22 00:20:33

标签: actionscript-3 flash

我对这个编码百灵鸟的现代对象并不十分擅长,并认为我可能误解了这是如何工作的:

这是我的Flash Builder 4.7项目test.as,名为test

package
{
import flash.display.Sprite;

public class test extends Sprite

{
    public var myVar:int = 10;
    public function test() {
        var myTestsub:testsub = new testsub;
    }
   }
}

这是我的testsub.as文件:

package
{
public class testsub
{
    public function testsub()
    {
        trace(myVar);
    }
  }
}

Flash Builder告诉我,在testsub.as"可能访问未定义的变量myVar"并且不会编译。

从我有限的,可能不正确的理解,在test.as中使myVar公开应该允许testsub.as使用它。谁能解释我哪里出错?先感谢您。

2 个答案:

答案 0 :(得分:0)

课程之间没有联系。他们需要一个链接,类似于这个解决方案:

public class test extends Sprite
{
    public var myVar:int = 10;
    public function test() {
        var myTestsub:testsub = new testsub(this);
    }
}

public class testsub
{
    public function testsub(otherClass:test)
    {
        trace(otherClass.myVar);
    }
}

在测试创建testsub-class时,我们将一个很长的参考传递给test实例。这使得访问公共功能成为可能。来自另一个类的该实例上的变量。 (观察者需要在testub中添加test-class作为导入,以便编译代码。

答案 1 :(得分:0)

你需要像这样写你的var:

public class the_var
{
    public function the_var
    {
        public static var my_var:number = 10;
    }
}

并在其他类中调用你的var:

public class the_test
{
    public function the_test
    {
        trace(the_var.my_var);
    }
}