O screencast abaixo é bem simples, porém muito eficiente para proteger o seu código. É importante ressaltar que isso tudo é necessário, pois o Action Script 3 não possui construtor privado e muito menos a implementação nativa de Enum.
Ano passasdo perguntei ao Beck como passar parâmetros para Event Handlers adicionados dinamicamente, porque quando você adiciona Event Listener usando myComp.addEventListener(...), o handler deve esperar apenas o parâmetro do evento. O Beck deu uma solução para isso, mas deixou claro que é apenas uma solução "alternativa", não a melhor delas.
Alguns dias atrás eu estava trabalhando com requisições simultâneas para o servidor e queria guardar o parâmetro da chamada, mas não queria ter que retornar ele do Java, então pensei em uma outra solução para isso. Considerando que seu Event Handler está esperando uma Function que tem somente um parâmetro Event, eu criei uma outra Function que retorna uma Function esperando um parâmetro Event. Mas o segredo é que o escopo de Function Closure permite que você acesse parâmetros tanto da primeira quanto da segunda Function, então você pode fazer isso:
Quando criamos um Container no Flex e não especificamos seu tamanho, o tamanho será calculado com base nos filhos que são adicionados ao Container. Porém, caso você especifique um tamanho para ele, o tamanho passa a ser o que você especificou e, caso ele seja menor do que o tamanho dos filhos, o componente exibirá uma ScrollBar.
Mas e se você quiser que ele volta a calcular o tamanho para você? Existem alguns casos em que precisamos que isso seja feito, porém não podemos atribuir "null" ou -1 como valor na propriedade para que o Container volte ao comportamento inicial.
Conversando com o Beck Novaes a muito tempo atrás, ele me apontou uma solução para isso. Se vocês olharem no código de alguns componentes do Flex (como o Container ou o UIComponent), vocês encontrarão várias referências para a função isNaN() e, como muitos de vocês devem saber, NaN é o valor atribuído a variáveis numéricas quando não estão com algum valor numérico atribuído.
Portanto, para que o componente calcule o tamanho para você, faça o seguinte:
Em minha estréia, trago para você este script para agilizar a construção de formulários Flex, ele apenas aponta "o caminho", você deverá implementar com os demais validadores. Leia o artigo completo »
Bom, poucas pessoas sabem para que serve o operador lógico "||=". Vou tentar explicar um pouco sobre ele.
Na documentação da adobe este operador é descrito da seguinte forma: "Assigns expression1 the value of expression1 || expression2.", traduzindo seria: "Atribui para expressão1 o valor de expressão1 ou da expressão2". Lembrando que para o operador lógico usamos com sintaxe "expressão1 operador expressão2".
Erro de compilação? Erro de execução? Nenhum dos dois. O resultado do trace é "Nome: Bruno Sales". A variável foi criada mesmo que o código dentro do IF não tivesse sido executado.
Isso acontece pois o ActionScript só tem 2 tipos de escopo: Global e Local; onde Local é considerado todo o escopo dentro de uma função.
Contudo, sugiro para que nunca utilizem algo deste tipo em seu processo de desenvolvimento. A lógica de seu código ficará muito confusa e causará sérios problemas para manutenção e debug.
BlazeDS é um projeto open source da Adobe que fornece serviço remoto e de mensagem, conectando o front-end Flex aos serviços back-end Java. Embora tenha sido possível usar BlazeDS para se conectar aos serviços Spring-managed, isto não tem sido um caminho "natural" para o padrão de desenvolvimento Spring, exigindo um trabalho extra de manter um xml de configuração separado para o BlazeDS. O Spring BlazeDS Integration torna o BlazeDS MessageBroker em um Spring-managed object, abrindo caminhos para uma melhor integração através do paradigma Spring.