Centralizar uma janela PopUp na aplicação Adobe Flex

Centralizar uma Janela com Popup em Flex

 

 

 

 

 

 

 

 

 

 

 

Um recurso muito utilizado nas aplicações Flex são as janelas do estilo PopUp, que são aquelas que abrem sobre sua aplicação, podendo inclusive serem movidas pelo usuário. Normalmente quando abrimos uma nova janela desse tipo queremos que a mesma apareça exatamente no centro da tela, ou seja, da aplicação.

Para isso utilizamos o seguinte código:

PopUpManager.addPopUp(myPopUp, this, true);
PopUpManager.centerPopUp(myPopUp);

Normalmente utilizamos estes três parâmetros:

window: Nossa janela que desejamos exibir
parent: Componente pai que será utilizado como referência para posicionar a nova janela
modal: Variável booleana que define se nossa janela será do tipo Modal (se irá inibir o restante da aplicação).

O método centerPopUp, como o próprio nome diz, é utilizado para centralizar a janela sobre o componente pai. Aqui começa nosso problema. Quando o “parent” é nosso Application, tudo fica perfeito, pois nossa janela ficará exatamente no centro da aplicação do usuário. Entretanto se estamos executando nosso código, a partir de um sub-componente, por exemplo um que esteja na parte de baixo da aplicação, nossa janela popup será centralizada sobre sobre este componente.

Para corrigir isso, utilizamos o seguinte código:

PopUpManager.addPopUp(concessionaria,
                      DisplayObject(this.parentApplication),true);
PopUpManager.centerPopUp(concessionaria);

Desta forma estaremos dizendo ao PopUpManager que o componente pai da nossa aplicação será nosso Application, fazendo com que nossas janelas PopUp sempre sejam centralizadas sobre nossa aplicação.

Que tal, ótima dica não? Abs!