Domanda

Sto sviluppando un'applicazione con TitleWindows che viene creata utilizzando PopUpManager in modo che possano essere trascinati. I pulsanti su una barra dei pulsanti li visualizzano. Dopo alcuni test, ho scoperto che l'errore di seguito viene generato quando visualizzo la TitleWindow per la terza volta (non la prima o la seconda, ma solo la terza) e provo a recuperare la descrizione comandi dal pulsante sulla barra dei pulsanti o dal TabNavigator nella finestra del titolo (passando il mouse su questi componenti).

RangeError: Error #2006: The supplied index is out of bounds.
    at flash.display::DisplayObjectContainer/addChildAt()
    at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::rawChildren_addChildAt()
    at mx.managers::SystemChildrenList/addChild()
    at mx.managers::SystemManager/addChildToSandboxRoot()
    at mx.managers::ToolTipManagerImpl/http://www.adobe.com/2006/flex/mx/internal::createTip()
    at mx.managers::ToolTipManagerImpl/http://www.adobe.com/2006/flex/mx/internal::showTimer_timerHandler()
    at flash.utils::Timer/_timerDispatch()
    at flash.utils::Timer/tick()

Inoltre, quando provo a fare clic sul pulsante per visualizzare la TitleWindow per la quarta volta e sono più veloce della descrizione comandi per evitare l'errore, ottengo questo errore:

RangeError: Error #2006: The supplied index is out of bounds.
    at flash.display::DisplayObjectContainer/addChildAt()
    at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::rawChildren_addChildAt()
    at mx.managers::SystemManager/addChild()
    at mx.managers::PopUpManagerImpl/addPopUp()
    at mx.managers::PopUpManager$/addPopUp()
    at assets.components::FloatingWindow/show()
    at MethodInfo-1879()

Ho una classe FloatingWindow (in allegato) che estende TitleWindow e quindi sto creando una nuova classe chiamata SearchWindow che estende FloatingWindow. ButtonBar appartiene a una classe che estende HBox. ButtonBar ha la seguente funzione per visualizzare la finestra di ricerca:

function searchButton_click(event:MouseEvent):void
            {
                //Show Search Window
                if (searchWindow.removed == true)
                {
                    searchWindow.map = _map;
                    searchWindow.webService = wsGetData;
                    searchWindow.show(30);
                }

            }

Lo schema di questo errore è strano. Perché solo alla terza volta viene visualizzato l'errore con la descrizione comandi e la quarta volta con la finestra del titolo visualizzata? Parte del problema potrebbe essere il mio balzo in avanti delle lezioni? Ho una classe ButtonBar personalizzata, in cui viene creata la SearchWindow, che è una classe personalizzata basata su un'altra classe personalizzata (FloatingWindow), che si basa su TitleWindow. Questa può essere la causa del problema?

Qualsiasi aiuto è molto apprezzato.

È stato utile?

Soluzione

Cerca perdite di memoria. Forse la finestra non viene rimossa dalla memoria e TooltipManager mantiene il riferimento all'istanza precedentemente aperta. È un colpo cieco.

Altri suggerimenti

Forse la tua finestra di ricerca non è stata ancora creata. Prova questo:

function searchButton_click(event:MouseEvent):void
{
    //Show Search Window
    if (searchWindow && searchWindow.removed)
    {
        searchWindow.map = _map;
        searchWindow.webService = wsGetData;
        searchWindow.show(30);
    }
}

Questo dovrebbe almeno impedire che si verifichino errori.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top