在AS2中,很容易从其他时间轴中的变量更改值。现在我不能用旧方式做到这一点!
基本上我需要的是从另一个时间轴中改变主时间轴中的变量的值。
示例:
主要时间表:
var totalA:int = 0;
将eventListener添加到函数后的其他时间轴:
parent.parent.totalA++;
所以它不起作用。谁能解释为什么? 感谢
答案 0 :(得分:0)
嗯......我解决了。
使用路径:
创建一个MovieClipvar A_mc:MovieClip = MovieClip(this.parent.parent);
然后我引用了它:
A_mc.totalA++;
答案 1 :(得分:0)
更好的解决方案是使用全局类。您可以从所有类中引用它,并可以在其中设置可随处访问的变量。
看看http://www.uza.lt/codex/as3-global-object/
Global Object是一个Singleton,它允许您将动态变量存储在AS3应用程序中的全局可访问位置。这使开发人员能够完成自我注册可视组件,全局事件和事件监听器等事情。
答案 2 :(得分: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;
答案 3 :(得分:0)
我还想补充一点,如果你对OO实践感兴趣,我不会直接访问该变量。
你可以在Josh上面提到的Singleton中设置一个函数。它有助于将该变量封装在函数内部。您应该将函数命名为有意义的函数,例如:
function addToTotal (int amount) :void
这样,用于计算总数的所有函数都被包含在Singleton和函数中。如果您以某种方式需要稍后进行总更改或者需要更改变量,则更改仅限于函数。