Bem, toda a gente sabe que o Bindable nos salva em muitas situações, mas por vezes alem do bindable o ChangeWatcher pode ser muito util.
Uma curta explicação sobre o que é uma variavel bindable:
private var nomeCliente:String="Mario";
A tag [Bindable] que faz com que o valor da variavel nomeCliente seja monitorizada e em caso de alteração que todos os elementos na nossa aplicação que usem essa variavel sejam informados das alterações.
Mas agora imaginem que tenho um objecto:
var cliente:Object;
cliente=new Object;
cliente.nome="Mario";
cliente.tel="352 55 55 55";
cliente.email="admin@mail.com");
cliente.authLevel=1;
cliente.lang="PT_br";
cliente.pais="Portugal";
E quero saber quando foi alterada a lingua, e apenas a lingua… o resto não quero saber… claro que poderiamos fazer um método tradicionalmente sujo, guardando a lang do objecto numa variavel à parte, depois associando um evento change, por exemplo a um elemento que sofra a alteração quando o Bindable informar esse mesmo elemento, tal como um label:
Agora poderiamos saber quando essa alteração via bindable Ocorreu, já que ao mudar o label a função objectoMudou seria chamada e aí comparariamos o valor do cliente.lang com a variavel lang que tinhamos anteriormente, para sabermos se a lang foi alterada, mas isto tudo seria lógico se não existisse o chamado changeWatcher, que serve perfeitamente para saber quando uma propriedade de um objecto mudou. O seu uso é simples, tendo apenas uma obrigação, o objecto de ser inicializado como ObjectProxy() e nao como Object, já que sendo declarado como objecto ele não é passivel de ser observado. Vejam o exemplo seguindo o objecto cliente:(…)
Leia o resto de Flex/AS3 – Truques e Dicas #5 – [Bindable] & Change Watcher (100 palavras)
© Mário Santos em TSW – That Should Work, 2009. |
Link Permanente |
Um comentario |
Adicionar ao
del.icio.us -
Stumble it -
Google Bookmark -
technorati
Mais artigos relacionados nas categorias: Action Script, as3, Bindable, changeWatcher, EventListener, explicação, Flash, Flex, Tutorial, utils




