0

「インデックス付き」プロパティ (SQL テーブルでインデックス付き) をすべて共有するオブジェクト (.pdf を表す) が取り込まれたデータグリッドがあります。それらがインデックス化されている場合、それぞれのチェックボックスがチェックされ、インデックス化が true に設定されます。また、ウィンドウにはボタンがあり、クリックすると、選択したオブジェクトが呼び出されてインデックスが作成されます。

問題は、既にインデックスが作成されているものがある場合、ユーザーに何をすべきかを決定するよう促す必要があることです。無視 (何もしない) または置換 (テーブルを削除してインデックスを再作成)。これは私が試したものですが、ウィンドウを積み重ねてすべてのインデックスを作成し続けるだけです。

private function indexPDFData(evt:MouseEvent):void  //button handler
    {
        var i:int=0;

        if(pdfScreen.grid2.selectedIndices.length>0) //if items are selected
        {
                for each(var item:Object in pdfScreen.grid2.selectedItems)
                {
                    if(item.indexed=="true")
                    {
                        var window:CustomPopUp = PopUpManager.createPopUp(pdfScreen, CustomPopUp, true) as CustomPopUp;
                        window.ignoreBtn.addEventListener(MouseEvent.CLICK, ignore);
                        window.replaceBtn.addEventListener(MouseEvent.CLICK, replace);
                    }
                }

            sendNotification(ApplicationFacade.COMMAND_INDEX_PDFS, (pdfScreen.grid2.selectedItems));
            pdfScreen.controlBtns.enabled=false;
        }
        else
        {   
            Alert.show("Must select an issue to index!", "Index PDFs");     
        }
    }

が望むのは、ユーザーが選択を行っている間はループを停止し、ポップアップ ウィンドウ内の 2 つの選択肢のいずれかをクリックした後に続行することです。私は多くのアプローチを試しましたが、どれもうまくいきません。私はas3にかなり慣れていないので、どんな助けや洞察も本当に感謝しています!

4

1 に答える 1

0
private var currentIndex:int;//used to remember the index of the item whose indexed is true

private function indexPDFData(evt:MouseEvent):void  //button handler
{
    if(pdfScreen.grid2.selectedIndices.length>0) //
    {
         checkItems(0);
    }
    else
    {
         Alert.show("Must select an issue to index!", "Index PDFs");     
    }

}

private function checkItems(startIndex:int):void {

     for (var i:int = startIndex; i < pdfScreen.grid2.selectedItems.length; i++)
     {
          var item:Object = pdfScreen.grid2.selectedItems[i];

          if(item.indexed=="true")
          {
               var window:CustomPopUp = PopUpManager.createPopUp(pdfScreen, CustomPopUp, true) as CustomPopUp;
               window.ignoreBtn.addEventListener(MouseEvent.CLICK, ignore);
               window.replaceBtn.addEventListener(MouseEvent.CLICK, replace);
               currentIndex = i;//call checkItems(currentIndex + 1) when close window
               break;
          }
     }

    sendNotification(ApplicationFacade.COMMAND_INDEX_PDFS, (pdfScreen.grid2.selectedItems));
    pdfScreen.controlBtns.enabled=false;
}

window(Your CustomPopUp) を閉じるときは、必ず checkItems(currentIndex + 1); を呼び出してください。

于 2013-06-19T16:32:39.790 に答える