【发布时间】:2011-08-16 20:15:37
【问题描述】:
我正在使用 flash AS3 和 puremvc 制作应用程序,正确处理视图中介的方法有点让我吃惊......
好的 - 我有 3 或 4 个不同的视图,每个视图都由它自己的调解器管理。 每个视图仅单独显示 - 即。当 1 可见/在舞台上时 - 其他不可见/从舞台上移除(过于简化,但我想可以将其视为单独的页面,一次查看一个,导航栏允许用户在他们喜欢时更改视图)
一开始,我创建并添加到每个视图中介器,并将其添加到它自己的视图组件中,因此,当“轮到”显示或隐藏该视图时,它很简单 - addChild 和 removeChild 用于它的视图组件。
但是,我在 puremvc.org 上读到,这不是一个好习惯 一种。通过舞台(在我的例子中,这是每个中介的 viewComponent - 每个视图都被添加到 - 例如 viewComponent.addChild(foo) 湾。创建自己的视图 - 这让我可以首先添加和删除它。
所以我改成了推荐的方式——当我创建每个中介时,我传入的是它所管理的视图组件(而不是舞台/主文档类)
例如。
var view:MyView = new MyView();
facade.registerMediator( new MyViewMediator( view ) );
viewComponent.addChild(view);
所以 - 在这种情况下 - 我不知道如何在需要时删除/添加每个视图。 我可以很容易地从每个调解器中设置可见性,但我有点想避免这样做 - 宁愿在不用于资源管理时删除...
任何人都知道我“打算”如何解决这个问题(例如,当舞台上不再需要某个视图时,暂时删除它,然后在需要时添加它?)-还是我错过了一些观点(很可能!)并且以错误的方式解决这个问题?我对 puremvc 很陌生,所以不太自信我正在接近它。欢迎指点!
【问题讨论】:
标签: flash actionscript-3 puremvc mediator