0

私のアプリケーションには本のタイトルのリストがあり、ユーザーが特定の本のタイトルをクリックすると、本の詳細を要約した TitleWindow が開きます。ユーザーが TitleWindow を閉じずに別の本のタイトルを選択した場合、既に開いている TitleWindow を新しく選択した本のタイトルの情報で更新する必要があります。したがって、特定の本のタイトルに関する詳細情報を表示する目的で開かれている TitleWindow は、常に 1 つだけです。

オンラインで見つけることができるすべての Spark TitleWindow の例では、TitleWindow が使用されるたびに新しい TitleWindow が開かれます。例えば:

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

これは私の場合にも起こっていることです。本のタイトルをクリックするたびに、新しい TitleWindow が開きます。

既に開いている場合、既存の TitleWindow を再利用する方法はありますか? もちろん、すべての TitleWindows について話しているわけではなく、この目的で使用される TitleWindow の専用インスタンスにすぎません。

現在、私が TitleWindow 内で使用している変数は[Bindable]、新しい本のタイトルがクリックされたときに元の TitleWindow が関連情報で更新されるようにするためのものです。そのため、別の解決策は、既存の TitleWindow が既に開いているときに新しい TitleWindows が開かないようにすることです。そのため、別の解決策は、TitleWindow の 1 つのインスタンスが既に開いているかどうかを照会することです。開いている場合は、新しいインスタンスを開かないでください。

4

1 に答える 1

3

はい、可能です。最初の本がクリックされたときにタイトル ウィンドウを作成し、その後のクリックでそれを再利用するだけです。

private var _titleWindow:TitleWindow;


private function onBookClicked():void
{
   if(!_titleWindow)
      _titleWindow = PopUpManager.createPopUp(...) as TitleWindow;

   updateTitleWindowWithBookInfo(_titleWindow,bookData);

}

ユーザーがタイトル ウィンドウを削除する代わりに閉じると、非表示になります。

于 2012-06-14T14:22:11.817 に答える