Trabalhando com Alerts no Flash Builder (FlexBuilder by Adobe)

            Neste artigo abordaremos como trabalhar com alguns tipos de alertas (que surgem como pequenas caixas de diálogo) possíveis na ferramenta de desenvolvimento web da Adobe.

Usando a classe Alert

A biblioteca mx.controls.Alert  é uma classe que mostra caixas de diálogo como janelas pop-up que represente graficamente de forma simples e formal, mensagens onde, depois de configuradas o usuário pode aceitar ou não uma determinada ação ou até mesmo configurar graficamente como deverá ser apresentada ao usuário.          

            Você pode ter a classe estaticamente através de seu método mais puro e simples, o método show(), veja o seguinte exemplo:

          

           

            Alert.show("Olá pessoal");  

 

            Sua sintaxe completa:

 

            show(text:String = “”, title:String = “”,

                               flags:uint = 0x4, parent:Sprite = null,

                               closeHandler:Function = null,

                               iconClass:Class = null, defaultButtonFlag:uint = 0x4):Alert

 

 

            Você pode usá-lo com um ou vários parâmetros, dependendo do que e para que você vai usar. Vou colocar alguns exemplos práticos abaixo:

           

            1) O exemplo mais comum utilizado em alerts:

 

                Alert.show(“Aqui você pode colocar uma mensagem do corpo do alert”, “Titulo do Alert”);

 

            2)Personalizando, com uma janela nao modal:

 

            Alert.show(“Janela NAO-MODAL”,“NAO MODAL”, Alert.NONMODAL);

 

            3)Inserindo botões:

 

Alert.show(“Agora com botões para selecionar uma opção”,“Alert com botoes”, (Alert.YES | Alert.NO));

 

            Podemos configurar esses botões pela propriedades abaixo:

 

* yesLabel. O rótulo para o botão SIM

* noLabel. O rótulo para o botão NAO

* okLabel. O rótulo para o botão OK

*cancelLabel. O rótulo para o botão CANCELAR.

 

Nota: estou pressupondo que você saiba o que é rótulo, label, ...ok? Caso tenha alguma dúvida com esses termos terei o prazer de ajudá-lo.

 

            E ainda nesse procedimento, você pode integrar tudo num mesmo método ou função:

 

private function alertWithButtonLabels():void

{

                Alert.yesLabel = “Fer sure!!!”;

                Alert.noLabel = “NO WAY!!”;

                Alert.buttonWidth = 100;

    Alert.show(“This is an Alert dialog box with custom button labels”,“Alert with Button Labels”, (Alert.YES | Alert.NO));

 

}

 

Nota:Olha que dá pra brincar bastante, viu?! olha como eu já altero direto o tamanho do botão também.

 

                As possibilidades são inúmeras onde até mesmo definir qual será o botão com foco, padrão, dentro de um alert.

 

            4)Definindo um botão padrão:

 

            Alert.show(“Aqui o botão padrão é o Cancel”,

                               “Alerta com botão padrão”,(Alert.OK | Alert.CANCEL),null,null,null,Alert.CANCEL);

 

 

            5) Capturando eventos de um alert:

            (Exemplo extremamente útil para você saber qual botão foi pressionado e qual decisão irá      tomar dali em diante).

 

                private function alertCloseHandler(event:CloseEvent):void

                {

                               if (event.detail == Alert.OK)

                               {

                                               Alert.show(“Voce clicou em  “ + Alert.okLabel,“Close Event Handler”);

                               }

                               else

                               {

                                               Alert.show(“Voce clicou em “ + Alert.cancelLabel,“Close Event Handler”);

                               }

                }

 

       

    Aqui, no exemplo acima pegamos o evento, pelo método Event:CloseEvent, que naturamente, ao clicar em qualquer um dos botões, fecharia o alert, por isso pegamos esse método. Porém nos cabe saber qual botão foi clicado, no caso se foi o botão dre OK ou outro botão.

 

            Para isso precisamos passar o e método acima por parametro para o método responsável pela apresentação do alert, siga esse modo como exemplo:

 

 

                Alert.show(“Usando o tratamento por evento”,“Alert com evento”, (Alert.OK | Alert.CANCEL), null, alertCloseHandler);

 

Nota: Repare que passei por parâmetro o método que será o responsável por tratar o evento. Nesse exemplo destaquei em verde o método usado.

 

 

6)Usando um ícone:

                Inclua no seu código, o trecho a seguir,  e não esqueça de ter uma imagem no seu path, corretamente:

 

[Embed(source=”assets/questionicon.png”)]

private var questionIcon:Class;

 

Alert.show(“Alerta com ícone personalizado”,“Alert com Icon”, 0, null, null,questionIcon);

 

 

 

 

 

 

É isso aí pessoal, espero que tenham gostado.

 

Um forte abraço++