logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!

Passando parâmetros para Event Handlers – Parte 2

Colocado por DClick Team na(s) categoria(s): 1, 4, 6, Actionscript, Adobe, app, AR, arte, back, bar, blog, class, event, EventListener, Evento, Flex, function, handle, ide, IE, int, Java, Javascript, label, lite, MXML, O, on, Otimização, programação, pt, RIA, Ria’s Geral, servidor, TAT, Twitter, UI, uint, XML em 01 19th, 2010 | Sem comentários

Twitter!

Ano passasdo perguntei ao Beck como passar parâmetros para Event Handlers adicionados dinamicamente, porque quando você adiciona Event Listener usando myComp.addEventListener(…), o handler deve esperar apenas o parâmetro do evento. O Beck deu uma solução para isso, mas deixou claro que é apenas uma solução “alternativa”, não a melhor delas.

Alguns dias atrás eu estava trabalhando com requisições simultâneas para o servidor e queria guardar o parâmetro da chamada, mas não queria ter que retornar ele do Java, então pensei em uma outra solução para isso. Considerando que seu Event Handler está esperando uma Function que tem somente um parâmetro Event, eu criei uma outra Function que retorna uma Function esperando um parâmetro Event. Mas o segredo é que o escopo de Function Closure permite que você acesse parâmetros tanto da primeira quanto da segunda Function, então você pode fazer isso:

PLAIN TEXT
XML:

  1. <mx:Application xmlns:mx=“http://www.adobe.com/2006/mxml” height=“100%” width=“100%”
  2.     initialize=“initApp()”>
  3.  
  4.     <mx:Script>
  5.         <![CDATA[
  6.             private function initApp():void
  7.             {
  8.                 buttonA.addEventListener(MouseEvent.CLICK, buttonHandler(0x0000FF));
  9.                 buttonB.addEventListener(MouseEvent.CLICK, buttonHandler(0xFF0000));
  10.             }
  11.  
  12.             private function buttonHandler(color:uint):Function
  13.             {
  14.                 return function(event:MouseEvent):void
  15.                 {
  16.                     box.setStyle("backgroundColor", color);
  17.                 }
  18.             }
  19.         ]]>
  20.     </mx:Script>
  21.  
  22.     <mx:HBox>
  23.         <mx:Button id=“buttonA” label=“Blue”/>
  24.         <mx:Button id=“buttonB” label=“Red”/>
  25.     </mx:HBox>
  26.  
  27.     <mx:Box id=“box” height=“80″ width=“200″ backgroundColor=“#FFFFFF”/>
  28.  
  29. </mx:Application>


Mas e agora se você quiser usar esse Event Handler diretamente no MXML? Bem, você não pode fazer isso:

PLAIN TEXT
XML:

  1. <mx:Button label=“Green” click=“buttonHandler(0x00FF00)”/>


Isso não vai funcionar porque a Function que retorna da primeira Function está esperando um parâmetro Event. Então, você pode fazer assim:

PLAIN TEXT
XML:

  1. <mx:Button label=“Green” click=“buttonHandler(0x00FF00)(event)”/>


Estranho, não? Talvez mais um patter do FreaktionScript?



Veja o post original no blog do autor aqui!  

DClick Team

Escrito por DClick Team @ http://blog.dclick.com.br/pt/
Saiba mais sobre o autor na sua pagina de perfil
Outros posts do autor:
» Agon News S1G9R1
» Que Venha 2011
» Agon News S1G7R2

Deixe um comentário



Spam Protection by WP-SpamFree

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2750 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com