我正在尝试创建一个模块化结构,该结构最终将生活在另一个ActionScript/Flex应用程序中。我在外部应用程序中使用CairnGorm,我想在内部应用程序中创建多个新组件的一个以上实例。 Cairngorm由于模型的单身性质而无法创建多个重复组件。

我正在创建的组件是伪视频查看器。我想在此组件实例中拥有共享模型。我正在为在组件中共享单个模型的方法而苦苦挣扎。如果我使用Singleton模式,则不能创建此组件的一个以上实例。如果我创建一个实例并让组件确保只有一个,那么我很难将模型轻松传递给所有想要它的组件。这尤其困难,因为.mxml组件不能具有我将通过模型传递的构造函数。

我一直在考虑让每个组件向其父询问模块,直到组件拥有它为止。这将要求每个组件都具有实现的接口,并对我有些奇怪。

有人知道一种在组件中创建实例变量的方法,以便可以创建多个组件,但在整个组件中也可以轻松共享该模型?

有帮助吗?

解决方案

最新的Swiz版本(1.0.0)对这个问题有答案。现在,您可以在项目中创建多个SWIZ的实例,并设置父子女关系。模块支持页面是他们最好的解释(http://swizframework.jira.com/wiki/display/swiz/module+Support)但是您实际上不必使用模块,任何父母的关系都会起作用。

只需记住,要防止每个事件处理程序从儿童视图中响应事件,您需要将EventHandler范围设置为本地,例如:

[EventHandler( event="TestEvent.SAVE_USER_REQUESTED", scope="local")]
public function handleEvent(event:Event):void {
    //do stuff
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top