Pergunta

Estou desenvolvendo um aplicativo com TitleWindows que são criados usando o PopUpManager para que possam ser arrastados. Botões em um ButtonBar exibi-los. Depois de alguns testes, eu descobri que o erro abaixo é acionado quando eu estou mostrando o TitleWindow pela terceira vez (não primeiro ou segundo, mas apenas em terceiro lugar) e eu tento recuperar a dica de ferramenta a partir de qualquer botão na ButtonBar ou o TabNavigator no TitleWindow (passando o rato sobre esses componentes).

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()

Além disso, quando eu tento clicar no botão para exibir o TitleWindow pela quarta vez e eu sou mais rápido do que a dica de ferramenta para evitar o erro, eu recebo este erro:

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()

Eu tenho uma classe FloatingWindow (em anexo) que se estende TitleWindow, e então eu estou criando uma nova classe chamada SearchWindow que estende a FloatingWindow. O ButtonBar está numa classe que se estende HBox. O ButtonBar tem a seguinte função para exibir o SearchWindow:

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

            }

O padrão de este erro é estranho. Por que apenas no 3º tempo que eu recebo o erro com a descrição e 4ª vez com o Poping o TitleWindow? parte do problema poderia ser meu-Leapfrogging de aulas? Eu tenho uma classe ButtonBar personalizado, onde o SearchWindow é criado, que é uma classe personalizada baseada fora de uma outra classe personalizada (FloatingWindow), que é baseado fora TitleWindow. esta pode ser a causa do problema?

Qualquer ajuda é muito apreciada.

Foi útil?

Solução

Procure vazamentos de memória. Talvez a sua janela não é removido da memória e TooltipManager mantém referência à instância aberta anteriormente. Ist é um tiro cego.

Outras dicas

Talvez seu searchwindow ainda não foi criado. Tente isto:

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

Isto deve pelo menos parar os erros aconteçam.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top