Eu tenho meu Canvas, e ao inicializá-lo eu faço:

var popup:IFlexDisplayObject;

                        private function init():void
                    {
                        popup = new empresa_inserir();
                        popup.name = "empresa_inserir";
                        //PopUpManager.addPopUp(popup,this);
                        //PopUpManager.removePopUp(popup);
                    }


Isso pq eu quero inicializar meu popup que será adicionado e removido
de acordo com a necessidade do usuário.

O problema é que na hora de add meu popup ao popupmanager eu tenho o
seguinte código:

private function chama_inserir():void
                        {
                                PopUpManager.removePopUp(popup);
                                var tmp:DisplayObjectContainer = popup as 
DisplayObjectContainer;
                                var tmp2:TextInput = 
tmp.getChildByName("txtNome") as TextInput;
                                tmp2.text = "Bruno";
                                PopUpManager.addPopUp(popup,this);
                                PopUpManager.centerPopUp(popup);
                        }


Que não funciona! A linha que tem tmp.getChildByName("txtNome") não
encontra nenhum child com esse name. Embora ele faça parte do meu
empresa_inserir.mxml

Criei um alert no creationcomplete do meu empresa_inserir.mxml e notei
que ELE SÓ É CHAMADO NA PRIMEIRA VEZ QUE EU ADD ELE NO POPUPMANAGER ao
invés de ser chamado quando eu inicializao meu canvas, ou seja, quando
eu faço popup = new empresa_inserir();.

Assim, na primeira vez que eu clico para add meu popup ao popupmanager
os child do meu empresa_inserir.mxml ainda não foram inicializados por
isso eles não podem ser encontrados.

Então, para resolver isso eu adiciono e removo meu popup ao criá-lo
( linhas comentadas no primeiro código ), isso para que todo seu
conteúdo seja construído, depois quando o cliente clica no botão para
abrir o popup ele funciona normalmente pois seus children podem ser
encontrados.

Não gostei deste comportamento, não gostei de ter que add e remover o
popup. Existe alguma forma melhor de resolver este problema?
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a