Flex:DisplayObject Singleton

时间:2009-08-10 15:28:17

标签: flex singleton displayobject

我希望在整个应用程序中的几个不同位置显示Flex组件。它应该是组件的相同实例,而不是副本。 所以我想把Component作为Singleton。

但问题是:

当我做这样的事情时:     var vb1:VBox = new VBox();     var vb2:VBox = new VBox();

var comp : MyComponent  = new MyComponent.getInstance();  

vb1.addChild(comp); 
vb2.addChild(comp); 

组件仅显示在“vb2”中。我想当我们调用vb2.addChild(comp)时, 它删除了vb1中的孩子。

有没有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

如果您希望组件显示在多个位置,那么它必须是副本,因为它是显示的组件本身。为什么你需要组件成为Singleton?是否只需要来自同一个地方的基础数据?在这种情况下,您只需将显示组件引用到同一条数据即可。

如果您确实需要在多个地方使用相同的组件,则无论何时显示它都必须移动它。

例如:

vb1.addChild(new MyComponent(MyData.getInstance()));
vb2.addChild(new MyComponent(MyData.getInstance()));