flex componets lifecycle- niezwykłości

By riasol

removed before created ;)

container generuje zdarzenia Event.REMOVED_FROM_STAGE w trakcie tworzenia, prawdopodobnie przy sprawdzaniu scrollbars. Tak więc nie wolno w mxml ustawić chandlerów creationComplete i removedFromStage gdyż drugi wywoła się wcześniej, można np. w as w chandlerze  creationComplete dodać manualnie obsługę Event.REMOVED_FROM_STAGE

ref: http://jonathanbranam.net/book/export/html/1

Ogólne rozwiązanie może wynikać z przypadków uzycia obsługi _REMOVED_FROM_STAGE – zazwyczaj to czyszczenie pmięcie przy usuwaniu elementu z widzianych elementów. Można więc zastosowac algorytm, że przed prawdziwym usunięciem ustawia się z zewnątrz flage  i tylko wówczas w ciele metody obsługi zdarzenia wykona się blok kodu. Dla ModuleLoader bedzie to taki pseudokod:

//loader jest instancją ModuleLoader, BaseModule to klasa rozszerzająca Module

if(loader.child is BaseModule){
BaseModule(loader.child).unloading=true
}

//w obsłudze REMOVED_FROM_STAGE w klasie rozszerzającej BaseModule

if(unloading){//wykonaj blok

}