Se não me engano.... a troca de telas com o viewStack e o Accordion são utilizando States.... por isso do evento "currentStateChange" Ele será acionado a cada troca de tela!
Outra coisa... Utilizar state é bom mas também é complicado... o código fica complicado para trabalhar... mas isso é algo particular meu. ^^ Mas é isso... outra forma de resolver um determinado problema. Fuiii Em 15 de março de 2010 14:22, Marcos Arruda <[email protected]>escreveu: > Repeti "states" algumas vezes... vício de escrever > rápido.rs<http://xn--rpido-xqa.rs>Enfim, > states é a melhor solução e resolverá outros problemas que você nem > imagina que possa ter. > > Abs, > > On 15 mar, 14:19, Marcos Arruda <[email protected]> wrote: > > Uma melhor forma de resolver este problema sem usar os eventos CHANGE > > dos Navigators(ViewStack, Accordion etc.) é usando states. Usar os > > eventos change resolve o problema mas da responsabilidade do form para > > o ViewStack e/ou para o Accordion. > > Sugiro você definir states para a sua aplicação. Dessa forma, você > > colocará o listener apenas em um único lugar: Na mudança do state. > > Quando o state mudar, você verifica se o state anterior era o que > > possui o form visível (ex: FORM_EDIT_STATE). Se sim, você dispara a > > mensagem. > > > > Isso possibilita um controle muito melhor do estado da aplicação. > > Muitas coisas interessantes podem ser feitas usando states, que no > > Flash Builder 4 ficaram melhor ainda. > > > > Abs, > > > > Marcos Arruda > > > > On 15 mar, 12:12, Guilherme Sjlender <[email protected]> wrote: > > > > > Olhe a API do Flex! > > > > > Se você olhac lá veria que no Accordion existe os eventos change, > > > currentStateChange e currentStateChanging. > > > Verá que na viewStack tem os eventos change, childIndexChange, > > > currentStateChange e currentStateChanging. > > > > > Dependendo a sua necessidade você pode criar um addEventListener > referente > > > ao evento que você quer tratar... > > > > > Boa sorte. > > > < > http://livedocs.adobe.com/flex/3/langref/mx/core/UIComponent.html#eve...> > > > Em 15 de março de 2010 11:59, Bruno Carneiro > > > <[email protected]>escreveu: > > > > > > Eu conheço eventos. > > > > > > Minhas dúvidas: > > > > 1- Que evento usar? > > > > 2- Se não existe um evento específico, vou ter que criar um evento. > > > > Como dispará-lo? Eu conheço o dispatchEvent, não é disso que estou > > > > falando. Eu quero saber é como eu vou disparar esse evento antes da > > > > modificação ocorrer. Porque a ação acontece no click do viewstack ou > > > > do accordion eu vou ter que extender esses componentes para disparar > > > > meu evento? > > > > > > Acho que a resposta para o meu problema não é trivial. > > > > > > On 15 mar, 11:47, Guilherme Sjlender <[email protected]> wrote: > > > > > Cada Ação que você faz em um componente, seja Clicar com o Mouse, > Fechar > > > > a > > > > > tela, Passar o Mouse por cima do componente, etc... tudo isso é > disparado > > > > um > > > > > evento.... a base das ações do Flex é feita por eventos.... > > > > > > > Para que você conciga trabalhar nessa sua idéia, acredito que vc > tenha > > > > que > > > > > estudar essa parte.... > > > > > > > Olhe na documentação da API do Flex os eventos do viewStack e do > > > > > Accordion... assim você terá uma luz de como fazer isso. > > > > > Acho que é melhor você estudar do que ganhar isso pronto, assim > você irá > > > > > aprender de verdade isso! > > > > > > > Boa sorte e qualquer coisa, tenha a bondade =) > > > > > > > Em 15 de março de 2010 11:39, Bruno Carneiro > > > > > <[email protected]>escreveu: > > > > > > > > Eu estava pensando em tratar isso no projeto do meu sistema. > > > > > > > > Definir uma classe Tela para todas as telas do meu sistema. Tela > seria > > > > > > um container que aparece para o usuário como uma tela. > > > > > > > > Nessa minha classe eu teria um método fechar que sempre que fosse > > > > > > disparado iria disparar o método fechar de todas as telas filho > desse > > > > > > objeto. Além disso, no hide das minhas telas eu chamo o método > fechar. > > > > > > > > Assim, quando eu mudar o item do viewstack, o hide do minha tela > iria > > > > > > disparar e chamar a função fechar. Que chamaria o fechar de todos > os > > > > > > filhos. Como o meu form é um filho desse componente acabaria por > ter > > > > > > seu metodo fechar sendo executado. A mesma coisa quando eu mudar > o > > > > > > index do accordion, como o form é filho acabaria tendo seu fechar > > > > > > chamado. > > > > > > > > Ai no fechar do form, eu pergunto: "Deseja sair sem salvar?" > > > > > > > > Mas se o usuário clicar em "Cancel" como eu iria previnir a > mudança? > > > > > > > > Opsss.. hehehe minha idéia não deu... preciso melhorá-la =] > > > > > > > > On 15 mar, 11:30, Bruno Carneiro <[email protected]> > wrote: > > > > > > > Não entendi... > > > > > > > > > Não conhecia essa variável change, de onde ela vem? Ou é pra eu > criar > > > > > > > uma variável com esse nome? > > > > > > > > > Como vou "ouvir" dentro do meu form os eventos que acontece nos > pais > > > > > > > dele para poder tratar? > > > > > > > > > On 15 mar, 10:38, Guilherme Sjlender <[email protected]> > wrote: > > > > > > > > > > Use a variável change e trate os dois componentes no em uma > mesma > > > > > > função... > > > > > > > > > > Consegue compreender? > > > > > > > > > > Att. > > > > > > > > > > Em 15 de março de 2010 10:26, Bruno Carneiro > > > > > > > > <[email protected]>escreveu: > > > > > > > > > > > Seguinte, tenho um formulário em um accordion. > > > > > > > > > > > E este acordion está dentro de um viewstack. > > > > > > > > > > > Eu gostaria que toda vez que o usuário "saísse" do > formulário, > > > > caso o > > > > > > > > > formulário não tenha sido enviado, que uma pergunta fosse > feita: > > > > > > > > > "Deseja salvar as alterações". > > > > > > > > > > > Mas eu não sei exatamente como tratar esse "sair". > > > > > > > > > > > Sair seria, ou mudar a aba do accordion, ou mudar o > viewstack. > > > > > > Existem > > > > > > > > > duas formas de sair, eu queria tratar isso dentro do > próprio > > > > > > > > > formulário, não queria ter que fazer essa verificação no > > > > accordion > > > > > > nem > > > > > > > > > no viewstack pois acho que iria embolar o código. > > > > > > > > > > > Alguém saberia uma forma legal de fazer isso? > > > > > > > > > > > Obs.: o evento hide do form não serve, pois quando mudo o > > > > viewstack o > > > > > > > > > visible não muda e não dispara o evento hide do form. > > > > > > > > > > > -- > > > > > > > > > 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 emhttp:// > > > > > > groups.google.com/group/flexdev > > > > > > > > > > -- > > > > > > > > ----------------------------------------------------------- > > > > > > > > Guilherme Sjlender - > > > > > > > > Desenvolvedor RIA - Flex/Java -http://site.gflex.biz > > > > > > - > > > > > > > > ------------------------------------------------ > > > > > > > > -- > > > > > > 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 emhttp:// > groups.google.com/group/flexdev > > > > > > > -- > > > > > ----------------------------------------------------------- > > > > > Guilherme Sjlender - > > > > > Desenvolvedor RIA - Flex/Java -http://site.gflex.biz > > > > - > > > > > ------------------------------------------------ > > > > > > -- > > > > 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 emhttp:// > groups.google.com/group/flexdev > > > > > -- > > > ----------------------------------------------------------- > > > Guilherme Sjlender - > > > Desenvolvedor RIA - Flex/Java -http://site.gflex.biz > - > > > ------------------------------------------------ > > -- > 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 > -- ----------------------------------------------------------- Guilherme Sjlender - Desenvolvedor RIA - Flex/Java - http://site.gflex.biz - ------------------------------------------------ -- 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
