AS3中的全局变量

时间:2010-12-11 01:44:21

标签: flash actionscript-3

好的,我希望能够从Flash文件中的任何位置或Flash文件加载的Flash文件中访问某些变量。我该怎么做?我不知道哪些类是什么,我不想学习什么类,我不想导入任何东西,我只是想能够从任何地方初始化和访问某些变量。

谢谢:)

1 个答案:

答案 0 :(得分:8)

嗯,没有像as2那样的_global - 并且由于你不想使用类,你不能使用静态变量(如果你感兴趣,我可以解释这些)。所以你留下了在根上使用变量。例如,您可以在主时间轴上定义一个变量,如下所示:

var myGlobal:Number = 100;

如果你想在其他地方访问它...也就是说,在其他movieClip的时间轴上你需要说:

MovieClip(root).myGlobal;

如果你以前从未见过,那可能看起来很荒谬。基本上我们将根目录转换为movieClip,以便我们访问其动态属性。幸运的是,您可以进行设置,这样您就不必一直编写MovieClip(root):

// do this on any movieClip where you want to access globals
var global:MovieClip = MovieClip(root);

trace(global.myGlobal);

所以最后只需要一行额外代码就可以恢复AS2中的功能。

修改

  1. 转到主时间轴并将其添加到您的操作中:var myGlobal:Number = 100;
  2. 制作一个新的movieClip,确保它在舞台上
  3. 进入新的movieClip并将其添加到您的操作中:

    var global:MovieClip = MovieClip(root); 迹(global.myGlobal);

  4. 测试你的电影