Obrigado Beck, não tinha me atentado para isso... realmente acho que o problema dele vai ser resolvido colocando os listeners no container onde está o componente. Bem de qualquer forma fica ai o exemplo se alguem procurar por isso no grupo.
Abraço. On 9 abr, 23:51, Beck Novaes <[EMAIL PROTECTED]> wrote: > Hm... acho que o problema do nosso amigo é outro. Pelo que eu pude > entender ele já esta familiarizado com a API necessária para capturar > os eventos do teclado. Suponho que o componente que ele estendeu não > esteja funcionando porque ele adicionou o Listener para o botão, assim > o evento do teclado só será capturado se o botão tiver o foco. Da > mesma forma, no seu exemplo o evento só será capturado se o textInput > tiver o foco. Tanto o seu exemplo quanto o dele poderiam ser > independentes do componente que tivesse o foco se o Handler estivesse > tratando um evento do Application no lugar de um componente > específico. No seu exemplo basta remover o substituir > "tf.addEventListener(KeyboardEvent.KEY_DOWN,reportKeyDown)" por > "addEventListener(KeyboardEvent.KEY_DOWN,reportKeyDown)" ou seja, sem > a referência para o textInput. No caso dele, talvez ele tenha que > adicionar o listener para o Application. > > mx.core.Application.application.addEventListener(KeyboardEvent.KEY_DOWN, > myHandler); > > Será que é isso, Sá, que você precisa? > > []'s > Beck Novaes > > On 9 abr, 23:15, Daniel Lopes <[EMAIL PROTECTED]> wrote: > > > Ai está o exemplo que prometi... é só dar uma olhada na classe > > flash.ui.Keyboard . Cada tecla tem uma constante e vc pode usar isso > > como shortcut, no exemplo se vc aperta SHIFT ele muda a cor do > > componente e se apertar ctrl muda de cor de novo. > > > <?xml version="1.0" encoding="utf-8"?> > > <mx:Application > > xmlns:mx="http://www.adobe.com/2006/mxml" > > layout="absolute" > > creationComplete="initApp()"> > > > <mx:Script> > > <![CDATA[ > > import flash.ui.Keyboard; > > > public function initApp():void{ > > > > tf.addEventListener(KeyboardEvent.KEY_DOWN,reportKeyDown); > > } > > > public function reportKeyDown(event:KeyboardEvent):void > > { > > trace("Tecla apertada: " + > > String.fromCharCode(event.charCode) + > > "(codigo:" + event.keyCode + " character code: " + event.charCode + > > ")"); > > if (event.keyCode == Keyboard.CONTROL) > > tf.setStyle('backgroundColor',0xFFFF00); > > else if (event.keyCode == Keyboard.SHIFT) > > tf.setStyle('backgroundColor',0xFF0000); > > } > > > ]]> > > </mx:Script> > > > <mx:TextInput id="tf" /> > > > </mx:Application> > > > On 9 abr, 21:55, Daniel Lopes <[EMAIL PROTECTED]> wrote: > > > > cara... tem um tanto de coisa nesse código que não precisa e mudou > > > para o Flex 3... > > > Vou fazer um exemplo e posto aqui daqui a pouco > > > > On 9 abr, 19:49, Sá <[EMAIL PROTECTED]> wrote: > > > > > Pessoal, meu cliente pediu para que ao clicar certas teclas executar o > > > > click de determinados botões... > > > > Eu trabalho full-time com Flex e ActionScript há menos de 10 dias, e > > > > sou auto-didata, ou seja, pouca experiência e sem nenhum curso sobre o > > > > assunto... > > > > > Mas até que a coisa tá indo... > > > > > Então, resolvi criar um classe estendendo o Button, criar um set > > > > shortKey nessa classe, adicionar um addEventListener do KeyDown e > > > > intercepta-lo executando o click do botão caso o cidadão tenha > > > > pressionado a tecla informada na propriedade shortKey... Mas acontece > > > > que o KeyDown não é interceptado... > > > > > Eu queria saber se já existe a implementação de algo desse tipo, botão > > > > com tecla de atalho, e se não houver, alguem se dispõe a me ajudar a > > > > fazer isso? Pelo menos digam ai se eu estou no caminho certo, com o > > > > raciocino e lógica certa... > > > > > Pretendo disponibilizar esse controle para download no nosso blog, > > > > será open-source ;) > > > > > Abraço e obrigado desde já! > > > > > Marcus Sáhttp://www.maxup.com.brhttp://www.maxup.com.br/blog --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
