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 como 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 flexdev@googlegroups.com
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
-~----------~----~----~----~------~----~------~--~---

Responder a