所以,我正在AS3中构建东西,我有一个主要的影片剪辑,我有一组导航要显示两次(一个是正常的侧栏设置,另一个是一个花哨的设计师滚动的东西底部)。当点击一个时,另一个应该做出反应以反映发生的事情。
main.menuA应该引用main.menuB,还是应该设置EventDispatchers和EventListeners,以便事件通过main路由?或者当我启动menuA和menuB时,我应该将menuA的引用传递给menuB而反之吗?
老实说,在这种情况下,这并不重要,但我需要阻止不良做法成为坏习惯。
答案 0 :(得分:4)
最有意义的是设置事件并通过main更改相应的控件。如果你以另一种方式做到这一点,那么每个控件总是必须与另一个控件配对,他们甚至不应该彼此意识到。
但我有一点变化。 你有一个概念(PlayingStatus)。这个概念与你在屏幕上绘制它的方式无关(显然,因为你有两种方法)。我们称它们为Layout1和Layout2。
两个布局都应该保存对相同的PlayingStatus数据的引用。当一个Layout修改PlayingStatus时,PlayingStatus类可以为每个属性(无论是那些属性)引发一个事件,因为它会发生变化。两个布局都会监听这些事件,并在人们到达时重新绘制。
答案 1 :(得分:2)
我建议您选择事件监听器和调度员。如果您的事件冒泡(并且您将侦听器的范围设置为“气泡路径”),则无需从任何一个按钮直接引用另一个按钮。
确保在销毁对象时清理事件,或者(和)使用弱引用。