0

我需要根据用户点击的内容设置各种变量。然后这些变量需要被其他影片剪辑访问。

问题是在点击的时候,那些“其他影片剪辑”还不存在于时间线上。

我所做的是将变量分配给父动画剪辑,尽管我想我可以很容易地将它们设置为根。然后我会在相关剪辑启动时获取该值。

// set - works
MovieClip(parent).aMovieClip.someVariable = myVal;

// get? - doesn't work
getVar = MovieClip(parent).aMovieClip.someVariable;

以上不起作用 - 在我需要时获得该值的正确方法是什么。我想这是获取和设置全局变量的情况

4

2 回答 2

0

当对象仍然不存在时,您可以使用代理来处理这些值。这些只需要在可以访问 MovieClip 时得到通知,以便使用待处理的值修改它们。

于 2009-09-18T00:47:33.050 回答
0

答案复制自:

http://www.experts-exchange.com/Software/Photos_Graphics/Web_Graphics/Macromedia_Flash/Q_22997849.html

在 AS3.0 中,_global 变量的概念已被完全删除。虽然,一个外部类可以用来完全充当 AS2.0 _global

如果你正确地实施它,你应该得到想要的结果。以下是详细信息:

1.创建一个名为“glo.as”的AS3.0类,并将其保存在FLA所在的同一文件夹中。

2. 只需将以下操作脚本复制粘贴到“glo.as”类文件中。

////////////
package
{
      //Class will act as _global object of AS2
      // Static variable "bal" of this class is going to store "varibales, instance's/object's referece to be used by any other class or displayObject/movieClip
      // sample code to store a reference of a movieClip
      //
      // glo.bal.myMovie = this.new_mc;
      //
      //
      public class glo
      {
            public static  var bal:Object = new Object();
      }
}
//////

3. 现在只需使用“glo.bal”而不是“_global”在任何地方创建任何全局变量

例如:

glo.bal.myGlobalVariable = 22;

它可以在您的 FLA 和其他类范围内的任何地方访问。


信贷 Aneesh Chopra http://www.experts-exchange.com/M_3631521.html

于 2009-09-17T11:31:12.307 回答