【发布时间】:2009-07-24 21:26:20
【问题描述】:
所以我正在尝试将 MVC 模式用于我正在开发的游戏。到目前为止,一切进展顺利,但我无法弄清楚如何让我的模型和我的观点有效地相互交流。
我的一般模型结构涉及大量嵌套信息。
a Level has Rooms
a Room have Layers
a Layer has Objects
每一层在渲染它的视图中都有一个索引和一个对应的层。我需要对象在动画时发布更新消息,以便视图中的相应图层可以更新。我正在尝试使用内置的事件系统来处理这些更新。
我的问题是我不确定如何避免在游戏中的每个对象上设置监听器——这让我觉得很糟糕(也许我在这里错了)。如果我更改房间,该层无法从最后一个房间的对象中删除侦听器,因为它只能通过当前房间访问层。对象仅在当前房间中时更新,因此其他对象不需要触发事件。
视图设置为将事件级联到所有子节点,因此根节点可以接收所有更新(我认为我正确地做了那部分),并且图层可以匹配目标,因为它知道它正在渲染哪个图层。问题是将消息从对象传递到视图。
当然,这对我来说很有意义,因为我已经使用该代码有一段时间了。
如果我可以提供更多说明,请询问。这是我第一次使用 MVC 模式,所以我确信我可以做得更好。
如果您对我如何解决这个难题有任何建议,请分享!
编辑:我有一些东西可以从视图外部跟踪当前图层集,并且模型管理添加/删除适当的事件侦听器并按照建议将更新事件委托给图层。但是,请做任何我能做的来改善这一点。
【问题讨论】:
标签: actionscript-3 model-view-controller event-handling