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
-~----------~----~----~----~------~----~------~--~---

Responder a