【问题标题】:How to replace PureMVC Standard with PureMVC MultiCore如何用 PureMVC MultiCore 替换 PureMVC 标准
【发布时间】:2012-04-16 04:49:37
【问题描述】:
我正在开发一个使用 PureMVC 标准的项目。现在我需要添加一个新模块 SWF,它也使用 Standard。我知道解决方案是用 MultiCore MVC 替换 Standard MVC,但是有两个问题:
- Standard 的包结构与 MultiCore 的不同 - 我必须手动更正吗?
- 在标准 mvc 框架下,
Mediator 的构造函数中的一些代码是允许的,而在 MultiCore 中,这似乎是绝对禁止的 - 所以我必须更改这么多构造函数才能摆脱这个吗?
最后:除了用 MultiCore 代替 Standard,还有什么更好的方法来解决这个问题?
【问题讨论】:
标签:
actionscript-3
module
migration
flash-builder
puremvc
【解决方案1】:
除了跨项目的全局搜索和替换之外,我不知道有任何其他更改包结构的好方法。我这样做也没有问题。
对于调解器,我在构造函数中初始化简单变量(整数、布尔值、数组等)从来没有遇到过问题,但其他任何东西都会被推迟到 onRegister (尤其是任何涉及舞台的东西)并查看一些东西喜欢:
public class MyMediator extends Mediator implements IMediator {
public static const NAME : String = "MyMediator";
// internal states
private var foo : int;
public function MyMediator (viewComponent : Object) {
super(NAME, viewComponent);
foo = 0;
trace("MyMediator()", main_mc);
}
override public function onRegister () : void {
main_mc.addEventListener(...);
}
protected function get main_mc () : Main {
return viewComponent as Main;
}
}
无论如何,在 AS3 中使用稀疏构造器是个好主意,因为 constructor code is always interpreted and not compiled。
现在出于习惯,我对所有项目都使用多核,即使我只有一个核。这使得在新项目中重用中介和代理变得更加容易。