Flex:如何重新使用现有的 TitleWindow 而不是打开另一个新的 TitleWindow?

Posted

技术标签:

【中文标题】Flex:如何重新使用现有的 TitleWindow 而不是打开另一个新的 TitleWindow?【英文标题】:Flex: how to re-use an existing TitleWindow rather than open another new TitleWindow? 【发布时间】:2012-06-17 14:24:31 【问题描述】:

我的应用程序有一个书名列表,当用户单击特定书名时,会打开一个 TitleWindow,其中汇总了有关该书的详细信息。如果用户没有关闭 TitleWindow,而是选择了不同的书名,我希望已经打开的 TitleWindow 使用新选择的书名信息进行更新。因此,在任何时候都只会打开一个 TitleWindow,以便查看有关任何特定书名的更多信息。

我可以在网上找到的所有 spark TitleWindow 示例,每次使用 TitleWindow 时都会打开一个新的 TitleWindow。例如:

http://help.adobe.com/en_US/flex/using/WS6c678f7b363d5da52e8f1ca1124a0430dcf-8000.html

这也是我的情况。每次单击书名时,都会打开一个新的 TitleWindow。

如果一个已打开的 TitleWindow,有什么方法可以重新使用现有的 TitleWindow?当然,我们不是在谈论所有 TitleWindows,只是用于此目的的 TitleWindow 的专用实例。

目前我在 TitleWindow 中使用的变量是 [Bindable],因此当点击新书名时,原始 TitleWindow 会更新相关信息。因此,另一种解决方案是在现有 TitleWindow 已经打开时阻止新 TitleWindows 打开。因此,另一种解决方案是查询 TitleWindow 的一个实例是否已经打开,如果是,则不要打开新的。

【问题讨论】:

【参考方案1】:

是的,这是可能的,只需在点击第一本书时创建一个标题窗口,然后在随后的点击中重复使用它。

private var _titleWindow:TitleWindow;


private function onBookClicked():void

   if(!_titleWindow)
      _titleWindow = PopUpManager.createPopUp(...) as TitleWindow;

   updateTitleWindowWithBookInfo(_titleWindow,bookData);


当用户关闭标题窗口而不是删除它时,只需隐藏它。

【讨论】:

哇,这么简单,我试试。谢谢巴里斯。 那么在这种情况下,TitleWindow 永远不会真正被删除? 是的,如果你想删除它,你必须调用 PopUpManager.removePopUp(_titleWindow);如果他们关闭标题窗口,您可以调用它并将 _titleWindow 设置为 null。当一本书被点击时,titleWindow 将被重新创建,因为它为 null。 完美运行。非常感谢巴里斯!

以上是关于Flex:如何重新使用现有的 TitleWindow 而不是打开另一个新的 TitleWindow?的主要内容,如果未能解决你的问题,请参考以下文章

如何在现有的 django 网站上开始使用 react

使用新数据重新训练现有的机器学习模型

如何将代码注入现有的 Apk?

如何向现有的 Azure 表存储添加新列

Python重新打包现有的分发包

在flex中实现JMP