E ae Julio blz? Cara eu fazendo desta forma eu posso usar uma unica no meu sistema e na chamada eu mudo os parametos de entrada e passo qual o TextIput ira receber o retorno??
Tive uns imprevistos esse fds mas durante a semana vou mexer com isso e ai vou ver a forma que o Mário passou e a forma que você passou tudo é aprendizado... Valeu muito obrigado 2009/3/14 Julio Carneiro <jjcarne...@gmail.com> > > Vinicius, > > Há uma outra alternativa para passar informações entre classes, sem > criar dependencia entre seu componente e a Application o que como vc > mesmo sabe não é recomendável). > > Como o Mário sugeriu, evento personalizados é ma maneira de passar > informações do componente para o 'caller'. > > Agora lembre-se que no Flex, quando vc cria um componente (.mxml > ou .as) vc está na verdade criando uma nova classe. Seu componente que > implementa uma TitleWindow está na verdade extendendo a classe > TitleWindow. > Você pode se aproveitar deste fato e implementar um API para sua > classe (componente). Você pod definir propriedades de entrada/saida da > sua classe e deste modo passar/receber informações entre o 'caller' e > teu componente. > Deixa eu tentar explicar com um exemplo. > > Digamos que teu componente seja SelecionaBairro.mxml: > > <mx:TitleWindow ... > <mx:Script> > //-------------- > // Interface para SelecionaBairro > //------------- > //-------------- > // argumentos de entrada > //------------- > // se vc tiver algum parâmetro a passar para o componente > vc declara a propriedade aqui: > public var parametroDeEntrada1:String; > //-------------- > // argumentos de saida > //------------- > public var bairroSelecionado:String; // este é o argumento > de 'saída' do meu componente > </mx:Script > <mx:DataGrid... > </mx:TitleWindow> > > > Agora, como vc pode usar este API... > > Na tua aplicação (ou em algum componente da tua aplicação) vc usa algo > como: > > ..... > var pop:SelecionaBairro = new SelecionaBairro(); // aqui vc está > criando uma instância da tua classe > // a variável pop referencia um objeto da classe SelecionaBairro e > através dela vc tem acesso a qualquer propiedade exposta (public) pela > classe > // vc pode por exemplo enviar informações para o objeto... > pop.parametroDeEntrada1 = 'valor para o paremetro 1'; > // depois de posicionar os parametros de entrada vc pode ativar o > TitleWindow > PopupManager.addPopup(pop,this); // por exmplo via popup window ou > através de qqr outro mecanismo (addChild, ...) > // agora vc precisa interceptar qdo tua classe completou sua tarefa, > que obviamente tem que ser via eventos in Flex > // isto pode ser através de um evento especial ou no meu exemplo > poderia ser no CLOSE do popup > pop.addEventListener(CloseEvent.CLOSE,selecionaBairroDone); > > Quando SelecionaBairro for fechado selecionaBairroDone será executado, > e para ter acesso aos argumentos de saida da classe o método seria > algo assim: > > private function selecionaBairroDone(ev:CloseEvent):void { > var pop:SelecionaBairro = ev.currentTarget as SelecionaBairro; // > aqui eu recupero a instância de SelecionaBairro criada anteriormente > // lembre-se que 'pop' estará apontando para o mesmo objeto criado > anteriormente, com todos as variáveis e propriedades > // daquele objeto exatamente como estava no momento em que o popup > foi fechado > // assim através de 'pop' eu posso ter acesso aos argumentos de > saída, como definidos no API de SelecionaBairro > bairro = pop. bairroSelecionado; // copia o valor do bairro > selecionado, que foi posicionado dentro de SelecionaBairro > > } > > Este mecanismo evita a necessidade de criar eventos personalizados. A > implementação de SelecionaBairro continua encapsulada e independente > do utilizador > A única coisa que fica 'exposta' é a interface entre SelecionaBairro e > o utilizador através de propriedades publicas. > > abraço > julio > > ps: tem uma coisa nesta técnica que fica um pouco prejudicada do ponto > de vista de encapsulamento completo dos componentes. No flex, qualquer > componente utilizado por exemplo dentro de SelecionaBairro se torna > público. isto é, o datagrid,e outros componentes em SelecionaBairro, é > apresentado como uma propriedade pública. não há uma maneira simples > de evitar este 'side effect', mas se vc simplesmente ignorar > propriedades que não façam parte do API de SelecionaBairro, não há com > que se preocupar. mas esta uma discussão para 'puristas' e não afeta > a validade desta técnica. > > On Mar 13, 6:08 pm, Mário Júnior <juninho...@gmail.com> wrote: > > Vinicius, vc tem q usar eventos personalizados (custom events) que > deverão > > ser disparados (dispatchEvent) no momento que sua janela fechar. Nesses > > eventos vc pode transportar dados da forma que quiser, e é aí que vc irá > > transportar os dados da sua consulta. > > > > Assim, vc torna seu componente (a janela de consulta) bem mais > reutilizável > > e totalmente desacoplado do seu application (nada de [Bindable] public > var > > na app raiz). > > > > Só não se esqueça de "amarrar" um listener na janela antes de mostra-la > na > > tela. > > (janela.addEventListener(SeuEventoProprio.NOME_EVENTO, funcaoExecutar); > > > > Procure no histórico por pelas palavras chaves q deixei entre parenteses, > ou > > até mesmo na web, que vc vai achar material para estudo. > > > > Bons estudos. > > > > 2009/3/13 Vinícius Velasco <irc.vinic...@gmail.com> > > > > > > > > > Olá PessoALL, > > > > > Estou com a seguinte duvida: > > > Eu tenho uma tabela de bairros. No cadastro de pessoa eu tenho o campo > > > bairro que eu digito somente o código do bairros e ele me traz o nome, > até > > > ai tudo bem. Na minha tela de pessoas eu chamo uam titlewindow que tem > uma > > > grid que me mostra todos os bairros e nela tem um textinput pra > pesquisar eu > > > seleciono o bairro desejado e ela fecha trazendo para o cadastro de > pessoas > > > o nome do bairro, acontece que eu fiz no app um variavel bindable e uso > ela > > > pra carregar o meu textinput (o que é errado) outro problema é que eu > tenho > > > mais campos assim então tive que fazer para cada consulta uma > titlewindow e > > > o pior em uma tela q tem cidade nascimento cidade atual eu preciso > fazer uma > > > POG federal usando variaveis na app e flag's. Bom eu consigo criar uma > > > titlewindow extendida e passar os valor que quero como em qual tabela > > > peskisar e etc soh que eu nao consigo retornar o valor selecionado. > Alguem > > > teria alguma dica ou material pra fazer isso? > > > > > Desculpem o tamanho do texto > > > > > Desde ja agradeço > > > > > -- > > > Bel. Vinícius Velasco > > > Analista de Desenvolvimento - Ábaco > > > MSN: ircvinic...@hotmail.com > > > Skype: ircvinicius > > > Fone: 66 9206 6966 > > > Rondonópolis - Mato Grosso - Brasil > > > "Tudo Posso Naquele que me Fortalece" Fil 4:13 > > > > -- > > Mário Júnior > > Programador Java / Adobe Flexhttp://blog.mariojunior.com > > > -- Bel. Vinícius Velasco Analista de Desenvolvimento - Ábaco MSN: ircvinic...@hotmail.com Skype: ircvinicius Fone: 66 9206 6966 Rondonópolis - Mato Grosso - Brasil "Tudo Posso Naquele que me Fortalece" Fil 4:13 --~--~---------~--~----~------------~-------~--~----~ 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 flexdev-unsubscr...@googlegroups.com Mais opções estão disponíveis em http://groups.google.com/group/flexdev -~----------~----~----~----~------~----~------~--~---