0

在 AS2 中,很容易从其他时间线中的变量更改值。现在我不能用旧方法了!

基本上我需要的是从另一个时间线上的主时间线中的变量更改值。

例子:

主要时间线:

var totalA:int = 0;

其他时间线,将 eventListener 添加到函数后:

parent.parent.totalA++;

所以它不起作用。谁能解释为什么?谢谢

4

4 回答 4

0

更好的解决方案是使用全局类。您可以从所有类中引用它,并且可以在其中设置随处可访问的变量。

看看http://www.uza.lt/codex/as3-global-object/

Global Object 是一个 Singleton,可让您将动态变量存储在 AS3 应用程序中的全局可访问位置。这使开发人员能够完成诸如自注册视觉组件、全局事件和事件监听器之类的事情。

于 2009-06-16T13:23:12.160 回答
0

我还要补充一点,如果您对 OO 实践感兴趣,我不会直接访问该变量。

您可以在上面 Josh 提到的 Singleton 中设置一个函数。它有助于将该变量封装在函数中。你应该给你的函数命名一些有意义的名字,例如:

function addToTotal (int amount) :void

这样,计算总数的所有函数都封装在 Singleton 和函数中。如果您以后需要以某种方式进行总计更改,或者您需要更改变量,则更改仅限于函数。

于 2009-12-06T18:22:29.000 回答
0

这完全取决于您想如何做事,但是对于您可能想要维护的任何全局变量的 Singleton 类可能是最好的课程。如果您不熟悉单例设计模式,只需坚持将其转换为

//Example - Would move the parent movie clip 5 pixels to the right.
//You must cast it because there is no way for the compiler to know what the asset.
MovieClip(parent).x = 5;
于 2009-06-17T01:51:12.930 回答
0

嗯……我解决了。

使用以下路径创建了一个 MovieClip:

var A_mc:MovieClip = MovieClip(this.parent.parent);

然后我引用了它:

A_mc.totalA++;
于 2009-06-15T17:55:46.370 回答