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 simKeyDown), 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.comPara 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
smime.p7s
Description: S/MIME cryptographic signature