我的应用程序有一个书名列表,当用户点击特定的书名时,TitleWindow会打开摘要有关该书的详细信息。如果用户没有关闭TitleWindow,而是选择不同的书名,我希望已经打开的TitleWindow更新新选择的书名的信息。因此,只有一个TitleWindow可以随时打开,以便查看有关任何特定书名的更多信息。
每次使用TitleWindow时,我可以在网上找到的所有Spark TitleWindow示例都会打开一个新的TitleWindow。例如:
http://help.adobe.com/en_US/flex/using/WS6c678f7b363d5da52e8f1ca1124a0430dcf-8000.html
这也是我的情况。每次在新的TitleWindow上单击书名时,都会打开。
如果现有的TitleWindow已经打开,有没有办法重复使用?当然,我们不是在讨论所有的TitleWindows,只是用于此目的的TitleWindow的专用实例。
目前我在TitleWindow中使用的变量是[Bindable]
,以便在单击新书名时原始TitleWindow会更新相关信息。因此,另一种解决方案是在现有的TitleWindow已经打开时阻止新的TitleWindows打开。因此,一个替代解决方案是查询TitleWindow的一个实例是否已经打开,如果是,则不要打开一个新实例。
答案 0 :(得分:3)
是的,只需点击第一本书就可以创建标题窗口,并在后续点击中重复使用。
private var _titleWindow:TitleWindow;
private function onBookClicked():void
{
if(!_titleWindow)
_titleWindow = PopUpManager.createPopUp(...) as TitleWindow;
updateTitleWindowWithBookInfo(_titleWindow,bookData);
}
当用户关闭标题窗口而不是删除它时,只需将其隐藏。