0

我正在尝试创建一个模块化结构,该结构最终将存在于另一个 actionscript/flex 应用程序中。我在外部应用程序中使用 cairngorm,我想在内部应用程序中创建这个新组件的多个实例。由于模型的单例性质,Cairngorm 不适用于创建多个重复组件。

我正在创建的组件是一个伪视频查看器。我想在这个组件实例中有一个共享模型。我正在努力寻找在组件中共享单个模型的方法。如果我使用单例模式,我不能创建多个该组件的实例。如果我创建一个实例并让组件确保只有一个实例,那么我很难将模型轻松传递给所有需要它的组件。这尤其困难,因为 .mxml 组件不能有一个构造函数来传递模型。

我正在考虑让每个组件向其父级询问模块,直到组件拥有它。这将要求每个组件都实现该接口,并且对我来说感觉有点恶心。

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

4

1 回答 1

0

最新的 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
}
于 2010-12-17T16:28:02.630 回答