Fiquei um pouco intrigado.. sempre usava o KeyboardEvent, mas nunca
com teclas combinadas, então fiz uns testes para ver se realmente não
capturava, coloquei essa função teste no keyDown de um componente.

private function teste(event:KeyboardEvent):void{

                                trace(event.keyCode);
                                trace(event.ctrlKey);

                                //if(event.ctrlKey && event.keyCode == 
Keyboard.F1)
                                //      trace("CTRL + F1");

                                if(event.ctrlKey && event.keyCode == 88)
                                        trace("CTRL + X");
                        }

Debug  (no keyUp não fica entrando zilhões de entradas):

//sendo que o 17 é código do ctrl e 88 o do x:

17
true
88
true
CTRL + X

Ali no if consegui pegar a ação do CTRL + X, talvez possa te ajudar.

Lista dos codes: 
http://people.uncw.edu/tompkinsj/112/FlashActionScript/keyCodes.htm

On 19 dez, 12:54, J.C.Ködel <jcko...@gmail.com> wrote:
> Não tem como.
>
> Há 3 variáveis no evento de teclado: localização da tecla (esquerda,
> direita, numpad), código da tecla (somente as teclas de controle, não
> existem códigos para as teclas normais) e código ANSI da tecla.
>
> Quando o Control está pressionado, o código ANSI da tecla vem em branco,
> impossibilitando de pegar qual tecla está sendo pressionada juntamente com o
> control, nem é disparado outro evento para a outra tecla quando Control está
> pressionado, além da estupidez de considerar KeyDown como KeyPress (ou seja,
> se você segura Control, ele dispara zilhões de eventos com KeyCode = 17 (que
> é o Control), quando na verdade eu estou pedindo um evento apenas quando a
> tecla for "abaixada" (DOWN)).
>
> E, para piorar um pouco, os eventos de teclado estão na parte dos
> componentes Flex que não são open source (dentro do Flash).
>
> O mundo ideal seria o Flex falar... OS ou Navegador, dane-se você, eu vou
> processar todas as teclas =) O Chrome parece que faz isso às vezes, porque
> quando estou com foco no Flex e pressiono F5, ele não dá refresh. O IE
> maldito já pega as teclas pra ele e boa (nem Alt funciona no Flex... o IE já
> abre a barra de menu logo de cara).
>
> Enfim... pra evitar voltar ao velho problema do HTML em comportamentos
> diferentes para diferentes navegadores, deixo quieto essa parte... deu pra
> contornar o problema, então tá tudo bem =)
>
> --------------------------------------------------
> From: "RafaelViana" <rfl.vi...@gmail.com>
> Sent: Saturday, December 19, 2009 11:57 AM
> To: "flexdev" <flexdev@googlegroups.com>
> Subject: [flexdev] Re: TextInput & Ctrl+X
>
>
>
> > Já fez o teste de apertar CTRL + outra letra que não seja atalho dos
> > SO's?
> > E ver se consegue escutar esse evento?
>
> > On 19 dez, 11:44, J.C.Ködel <jcko...@gmail.com> wrote:
> >> Não pega... o evento não é disparado. Ele pega o código 17 que é o Ctrl
> >> (e
> >> fica repetindo, o que não deveria fazer já que não é evento KeyPress e
> >> sim
> >> KeyDown), mas quando teclo X ele simplesmente dá cut e não dispara os
> >> eventos de teclado)
>
> >> Mas já resolvi o problema de outra forma, obrigado.
>
> >> --------------------------------------------------
> >> From: "RafaelViana" <rfl.vi...@gmail.com>
> >> Sent: Saturday, December 19, 2009 11:41 AM
> >> To: "flexdev" <flexdev@googlegroups.com>
> >> Subject: [flexdev] Re: TextInput & Ctrl+X
>
> >> > Para pegar a tecla CTRL + X, seria algo como:
>
> >> > private function teste(event:KeyboardEvent):void{
>
> >> >   if(event.ctrlKey && event.keyCode == codigo da tecla x)
> >> >      ....
>
> >> > }
>
> >> > Mas....
>
> >> > "CTRL+X is a command you can't override. CTRL+X in most OS's (all the
> >> > ones supported by Flash at least) is the default shortcut for 'cut'.
> >> > You can't override that call at all."
>
> >> > Retirado de:http://www.actionscript.org/forums/showthread.php3?t=214879
>
> >> > On 19 dez, 10:19, J.C.Ködel <jcko...@gmail.com> wrote:
> >> >> Estou desenvolvendo um componente de MaskedTextInput (aliás,
> >> >> aprimorando
> >> >> o q a Adobe fez), mas estou com um problema que não estou conseguindo
> >> >> solucionar:
>
> >> >>http://www.kodelsolutions.com/Sandbox.swf
>
> >> >> No exemplo acima, experimente digitar algo, selecionar uma parte (ou
> >> >> tudo) e teclar Ctrl+X.
>
> >> >> O problema é que eu não consigo capturar quando o usuário tecla Ctrl+X
> >> >> (Cut to Clipboard). O componente requer algumas ações especiais quando
> >> >> algum caractere é deletado, e o Ctrl+X exclui caracteres e não me
> >> >> informa
> >> >> de uma forma fácil de pegar =\
>
> >> >> Então a pergunta é: alguém já fez alguma forma de bloquear totalmente
> >> >> a
> >> >> função Cut ou conseguiu pegar a seqüência de teclas Ctrl+X no evento
> >> >> KeyDown?
>
> >> >> ---------------------------------------------------------------------------­­­-----
> >> >> J.C.Ködel - Programador Microsoft.net/Adobe Flex
> >> >> TDS-Enterprise -http://www.tds-enterprise.com
>
> >> >>  smime.p7s
> >> >> 6KExibirDownload
>
> >> > --
> >> > 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 emhttp://groups.google.com/group/flexdev
>
> >>  smime.p7s
> >> 6KExibirDownload
>
> > --
> > 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 emhttp://groups.google.com/group/flexdev
>
>
>
>  smime.p7s
> 6KExibirDownload

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