Question

Je développe une application avec TitleWindows, créée à l'aide de PopUpManager, afin de pouvoir les faire glisser. Les boutons d'une barre de boutons les affichent. Après quelques tests, j'ai découvert que l'erreur ci-dessous est déclenchée lorsque j'affiche TitleWindow pour la troisième fois (pas la première ou la deuxième, mais seulement la troisième) et j'essaie de récupérer l'info-bulle à partir du bouton de la barre de boutons ou de TabNavigator. dans la fenêtre TitleWindow (en passant la souris sur ces composants).

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

De plus, lorsque j'essaie de cliquer sur le bouton pour afficher la fenêtre TitleWindow pour la quatrième fois et que je suis plus rapide que l'info-bulle pour éviter l'erreur, le message d'erreur suivant s'affiche:

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

J'ai une classe FloatingWindow (attachée) qui étend TitleWindow, puis je crée une nouvelle classe appelée SearchWindow qui étend FloatingWindow. ButtonBar est dans une classe qui étend HBox. La ButtonBar a la fonction suivante pour afficher le SearchWindow:

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

            }

Le motif de cette erreur est étrange. Pourquoi est-ce que je ne reçois l'erreur que la 3ème fois avec l'info-bulle et la 4ème fois avec l'affichage de la fenêtre TitleWindow? Une partie du problème pourrait-elle être mon saut dans les cours? J'ai une classe ButtonBar personnalisée, où SearchWindow est créé, qui est une classe personnalisée basée sur une autre classe personnalisée (FloatingWindow), basée sur TitleWindow. Cela peut-il être la cause du problème?

Toute aide est grandement appréciée.

Était-ce utile?

La solution

Recherchez les fuites de mémoire. Peut-être que votre fenêtre n'est pas supprimée de la mémoire et que TooltipManager conserve la référence à une instance précédemment ouverte. C'est un tir aveugle.

Autres conseils

Peut-être que votre fenêtre de recherche n'a pas encore été créée. Essayez ceci:

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

Cela devrait au moins empêcher les erreurs de se produire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top