AS3中的全局变量

A-O*_*-OK 1 flash actionscript-3

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

谢谢 :)

Zev*_*van 8

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

var myGlobal:Number = 100;
Run Code Online (Sandbox Code Playgroud)

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

MovieClip(root).myGlobal;
Run Code Online (Sandbox Code Playgroud)

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

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

trace(global.myGlobal);
Run Code Online (Sandbox Code Playgroud)

所以最后只需要一行额外的代码就可以使功能恢复到AS2的状态.

编辑

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

    var global:MovieClip = MovieClip(root); 跟踪(global.myGlobal);

  4. 测试你的电影

  • 对不起,我根本不明白.我要回到AS2,我可以做任何事情 (2认同)