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 [email protected]
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
-~----------~----~----~----~------~----~------~--~---