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