Mario eu tentei reproduzir a função que vc forneceu mas está ocorrendo
o seguinte erro "1120: Access of undefined property Container."

e Não funciona a limpeza dos campos

Estou chamando da seguinte forma

cleanForm(Form_Dados);

se eu coloco


for each(var item:Object in itensdoFormulario) {

trace("item: " + item);
trace("item.text: " + item.text);


Acontece o seguinte erro

ReferenceError: Error #1069: Property text not found on
mx.containers.FormItem and there is no default value.




public static function cleanForm(form:Object) : void {
var itensdoFormulario:Array = form.getChildren();
 for each(var item:Object in itensdoFormulario) {
  if (item is Container) {
  cleanForm(item);
  }
  else{
   if (item is TextInput || item is DateField || item is TextArea) {
   item.text = ""
   }
  }
 }
}



On 25 jun, 08:49, "Mário Júnior" <[EMAIL PROTECTED]> wrote:
> Hum..... interessante.... eu fiz uma assim....
>
> No meu caso, trabalho com Form padrão do flex, e se caso eu tiver algum
> container dentro de um FormItem, a função chama a si mesma passando o
> container como argumento. Por isso o argumento é um Object (poderia ser um
> Container... alterem se quiser)
>
> Lembrando que todo container do Flex já extends da classe Container.as que,
> por sua vez, implementa a interface IContainer. Graças ao conceito de
> herança e poliformismo é possível descobrir facilmente quem é um container
> ou não.
>
> Dessa forma, posso ter infinito níveis de hierarquia de containers dentro do
> form.
>
>          /**
>          * Limpa os campos de um formulário
>          */
>          public static function cleanForm(form:Object) : void {
>              //pega um arrays de filhos do Container...
>               var itensdoFormulario:Array = form.getChildren();
>
>              // para cada filho ...
>              for each(var item:Object in itensdoFormulario) {
>                  //... se for um outro container
>                  if (item is Container) {
>                      //chama a função novamente passando o filho como
> argumento...
>                      cleanForm(item);
>                  } else { //senão é container, então é um objeto conhecido
>                      //aqui estou limapando alguns campos... gostei da idéia
> do switch, pode ser interessante, alterem se quiser....
>                      if (item is TextInput ||
>                          item is DateField ||
>                          item is TextArea) {
>                           item.text = "";//limpa a propriedade 'text' do
> objeto conhecido
>                       }
>                  }
>              }
>           }
>
> Fim.
>
> Esse método faz parte do EloUtils, e por ser estático eu o chamo da seguinte
> forma:
> EloUtils.cleanForm(<id_do_form>) // pode ser aplicado encima de qualquer
> container.
>
> Abraços
>
> Mario Junior
>
> --
> Mário de Souza Júnior
> Programador Java / Flex : AS3 / PHP
> (44) 4009-3550 Maringá-PRhttp://blog.mariojunior.com
> [EMAIL PROTECTED] (gtalk, msn, etc..)
--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a