【发布时间】:2014-12-17 14:11:03
【问题描述】:
我正在创建一个简单的游戏来学习 Flash 编程。为了有一个干净的模型/视图分离,我想创建一个 Player 类,它只保存与用户相关的数据。我还创建了一个 StatusView 类,它扩展了 MovieClip 并对应于我在 Flash 项目中创建的影片剪辑符号。基本上,StatusView 将在屏幕上显示我的 Player 类的数据。
我习惯于使用侦听器来做这种事情,所以我找到了 EventDispatcher 类并添加了一个作为我的 Player 类的成员。我想让我的 StatusView 影片剪辑向我的 Player 类添加一个事件侦听器,以便在我更改 Player 类中的数据时它可以接收消息。
问题是,我似乎没有任何地方可以放置我的 Player 类以便 StatusView 可以找到它(添加侦听器)。项目中的所有内容都是由其中一个影片剪辑直接创建的,运行时似乎以任意顺序创建这些影片剪辑。例如,假设我创建了一个名为 GameView 的 MovieClip 元件,并在那里创建了 Player 的实例,而 GameView 是 StatusView 的父级。当 StatusView 被构造时,我希望能够从它的父级访问 Player,但那时 GameView 还没有运行它的构造函数代码。即使我等待 ADDED_TO_STAGE 事件也是如此。
我可以将游戏模型代码放在一个单例中,但这对我来说似乎是一种 hack。 Flash 中是否有一种最佳实践方法可以让我独立于所有 MovieClip 符号内容创建和访问我的游戏模型?
【问题讨论】:
标签: actionscript-3 flash model-view-controller