Para passar um parâmetro a um listener adicione o listener a uma função que recebe um parâmetro e que devolve uma outra função. Essa função que é retornada é que deverá então receber como argumento o parâmentro do evento. Por exemplo:
private function addMarker(localizacao:Object):void { var marker:Marker=new Marker(localizacao.point); map.addOverlay(marker); marker.addEventListener(MapMouseEvent.CLICK, teste(obj), false, 0); } private function teste(objecto:Object) : Function { // Aqui voce pode aceder ao objecto pra fazer o que precisar... return function (e:MapMouseEvent):void { // ...e aqui também Alert.show("TESTE"); } } On 8 dez, 21:49, Rodrigo Pandini <rodrigopand...@gmail.com> wrote: > @fabiophx A dúvida é do outro Fabio e não minha :) > > Fabio, > No caso, você tem que passar o evento como parâmetro, como disse o outro > Fabio :) > No seu caso, você pode fazer assim: > > private function addMarker(localizacao:Object):void > { > var marker:Marker=new Marker(localizacao.point); > map.addOverlay(marker); > marker.addEventListener(MapMouseEvent.CLICK, teste, false, 0); > > } > > private function teste(e:MapMouseEvent):void > { > Alert.show("TESTE"); > > } > > A pergunta então é: tem como passar outro parâmetro além do evento pra > função listener? > Confesso que não sei, nunca vi e num to achando no docs. Alguém ai sabe se é > possível? > Porque no caso aí do uso do mapa, quando a pessoa clicar em cima do marker, > só ocorre o event MapMouseEvent.CLICK. > Como ele iria passar os demais parâmetros nesse esquema ai onde só foi > definido o listener? > > 2009/12/8 fabiophx <fabiophx2...@yahoo.com.br> > > > > > > > Rodrigo, > > Qd se usa addEventListener vc só informa a função, e esta função > > prioritamente terá q ter um parâmetro q é o evento q o Flex irá > > passar. > > Via MXML vc chama a função como outra qq ex.: > > <mx:Button click="funcao(1, 'parm2');" /> > > <mx:Button click="funcao2();" /> > > > []s > > Fabio da Silva > >http://fabiophx.blogspot.com/ > > > On 8 dez, 12:04, Fabio Ebner <faeb...@gmail.com> wrote: > > > Rodrigo com a MapMousEvent.CLICK funcionou, porem quero chamar uma funcao > > > que eu passo um parametro??? e possivel?? eu tentei trocar fazer a > > funcao, > > > > private function teste(nome:String):void{ > > > > } > > > > e chamei assim: > > > > *var* marker:Marker=*new* Marker(localizacao.point); > > > > *this*.map.addOverlay(marker); > > > > marker.addEventListener(MapMouseEvent.CLICK, teste(localizacao.address)); > > > > porem so de adicionar a Mark ele ja executa a funcao, e se eu clicar > > sobre a > > > marca ele da erro: > > > > TypeError: Error #1006: value is not a function. > > > at <anonymous>() > > > at flash.events::EventDispatcher/dispatchEventFunction() > > > at flash.events::EventDispatcher/dispatchEvent() > > > at com.google.maps.overlays::Marker/dispatchMarkerMouseEvent() > > > at com.google.maps.overlays::Marker/onOverlayClick() > > > > valeu > > > > 2009/12/7 Rodrigo Pandini <rodrigopand...@gmail.com> > > > > > Fábio, > > > > Dá uma olhada na documentação: > > > > >http://code.google.com/intl/pt-BR/apis/maps/documentation/flash/refer. > > .. > > > > Se você for em propriedades do MarkerOptions, vai ver que tem uma > > > > propriedade chamada *clickable*. > > > > Em algum momento você alterou essa propriedade antes? > > > > Porque o estranho é que o default dela é true. > > > > Se não for isso, talvez (quase certo) que seja o tipo de evento que > > você tá > > > > usando. > > > > Repare que tem o *MapMouseEvent.CLICK* > > > > >http://code.google.com/intl/pt-BR/apis/maps/documentation/flash/refer. > > .. > > > > Tente trocar o MouseEvent.CLICK que você está usando por > > > > MapMouseEvent.CLICK pra ver se dá certo ai. > > > > Att. > > > > > 2009/12/7 Fabio Ebner <faeb...@gmail.com> > > > > >> Entao nao tem esse EventMaker, estou usando a api do googleMaps. > > > > >> 2009/12/7 J.C.Ködel <jcko...@gmail.com> > > > > >> Tente usar o EventMark: > > > > >>> var marker:EventMarker = new EventMarker(trafficEvent, icon); > > > > >>> marker.addEventListener(MouseEvent.CLICK, > > onMarkerClick); > > > > >>> *From:* Fabio Ebner <faeb...@gmail.com> > > > >>> *Sent:* Monday, December 07, 2009 4:56 PM > > > >>> *To:* flexdev@googlegroups.com > > > >>> *Subject:* [flexdev] Re: Ajuda AddEventListener > > > > >>> AE mlkao.. ficou assim e nao funcionou > > > > >>> private function addMarker(localizacao:Object):void > > > >>> { > > > >>> var marker:Marker=new Marker(localizacao.point); > > > > >>> this.map.addOverlay(marker); > > > >>> marker.addEventListener(MouseEvent.CLICK, teste, > > false, > > > >>> 0); > > > > >>> } > > > > >>> private function teste(evt:MouseEvent):void > > > >>> { > > > >>> edit.text="vaii"; > > > >>> Alert.show("TESTE"); > > > >>> } > > > > >>> e nao funcionou > > > > >>> 2009/12/7 Paulo Fernando Stoppa <paulofsto...@gmail.com> > > > > >>>> cara, a assinatura da function teste ta errada... > > > >>>> tem q ser assim > > > >>>> private function teste(event:MouseEvent):void > > > > >>>> Paulo Fernando Stoppa > > > >>>> paulofsto...@gmail.com > > > > >>>> 2009/12/7 Fabio Ebner <faeb...@gmail.com> > > > > >>>> Pessoal fiz o seguinte codigo: > > > > >>>>> private function addMarker(localizacao:Object):void > > > >>>>> { > > > >>>>> var marker:Marker=new Marker(localizacao.point); > > > >>>>> marker.addEventListener(MouseEvent.CLICK, teste, > > false, > > > >>>>> 0); > > > >>>>> this.map.addOverlay(marker); > > > > >>>>> } > > > > >>>>> private function teste():void > > > >>>>> { > > > >>>>> edit.text="foi"; > > > >>>>> } > > > > >>>>> alguem pode me ajudar pq qdo eu clico na marca ele nao faz nada?? > > nao > > > >>>>> executa o eventListener (no meu caso o teste).. > > > > >>>>> Obrigado --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---