ActionScript - 应该尽可能避免事件调度/侦听吗?

时间:2010-12-24 09:57:46

标签: actionscript-3 events

recently,我遇到了一个问题,我需要从List的自定义单元格渲染器类中访问List对象。

有两个选项:

  1. 监听并发送自定义事件,以便在两个班级之间进行通信。
  2. 使用父属性从单元格渲染器类引用List: List(parent.parent.parent)
  3. 虽然选择第二个选项要容易得多,但我觉得调度和监听自定义事件会导致代码更符合AVM2的设计,提供更好的通信控制,并且,正如预期的AS3,应该是新手中的调试或维护难度较小。

    然而,我也觉得使用一个事件更加昂贵,需要注意资源管理,这可能会使调试和维护变得更加困难,并且可能一般都是矫枉过正。

    这仅仅是需求或品味的问题?如果可以的话,应该避免调度/收听自定义事件吗?

2 个答案:

答案 0 :(得分:1)

我会从另一个角度看待它。如果另一个选项最终在两个类之间创建更多的依赖关系,我肯定会选择事件调度。

在这方面,我不确定为什么你认为事件驱动的应用程序会更难以调试&保持。它似乎是相反的,但它当然取决于如何在应用程序中实现事件调度。但是这样说并重新阅读你的问题我意识到你似乎与自己相矛盾!当然,我倾向于同意第一个陈述。

...offers greater control for communication and, as it's expected AS3, 
should be less difficult to debug or maintain... 

...perhaps making it more difficult to debug and maintain and 
could be generally overkill.

答案 1 :(得分:1)

不要忘记在代码中只看一眼您无法看到事件监听器的控制流

虽然我并不完全反对事件监听器,但如果你使用它们,你应该尝试以最自我记录和简单的方式使用它们。如果你有聪明的东西,比如添加/删除事件监听器,并且它出错了,那么调试可能是一场噩梦,因为你看不到dispatchEvent将会做什么。

如果owner为您提供了正确的对象,那么我自己也会这样做。