Realmente no IE não funcionou... Uma vez vi um hack para colocar o foco do navegador na aplicação..Mas acho que mesmo assim se fosse apertado o F5 no IE ele daria o refresh :S..
Alguns links interessantes sobre o assunto: http://santrajan.blogspot.com/2007/03/cross-browser-keyboard-handler.html http://blog.flexexamples.com/2008/02/29/determining-if-a-flex-application-has-focus-using-the-activate-and-deactivate-events/ http://www.appfoundation.com/blogs/giametta/2007/07/09/internet-explorer-setting-focus-on-flex-apps-flash-player/ http://www.colettas.org/?p=69 Realmente isso é um problema.. Pois cada navegador tem suas teclas de atalho (apesar do CTRL + X não ser uma tecla de atalho do Internet Explorer...), e seu modo de interpretar (CSS é um bom exemplo de como os navegadores são um problema...) Enfim, nesses casos prefiro buscar outra solução (como você que já resolveu) do que resolver o problema. On 19 dez, 13:30, J.C.Ködel <jcko...@gmail.com> wrote: > Agora tenta fazer o mesmo no IE =) > > O meu pelo menos não funciona... fiz um alert com o código que você postou, > funciona bem no Chrome e no FireLerdo, mas no IEca não >.< > > É como eu disse antes: F5, por exemplo, funciona no IE (e acho que no FF) > como Refresh, no Chrome ele não atualiza a página (claro, considerando que o > foco esteja com o plug-in do Flex). > > Outra coisa que é diferente nos navegadores (e aliás, quem puder me ajudar > com isso, agradeço): > > Imagine que você tenha um textinput e sete o foco nele. Assim que você abre > o projeto no navegador, não adianta digitar porque ele não vai responder (o > foco não está no plug-in do Flash). No IE, eu consigo fazer um > document.getElementById("{application}").focus() e isso resolve o problema, > mas esse hack não funciona no Chrome e no FF =\ > > Eu gostaria de algo semelhante ao Silverlight: > System.Web.Browser.PlugIn.SetFocus()... Isso sempre captura o plug-in do > SilverLight e aí consigo dar o foco nele para responder ao teclado assim que > o aplicativo inicia. > > -------------------------------------------------- > From: "RafaelViana" <rfl.vi...@gmail.com> > Sent: Saturday, December 19, 2009 1:22 PM > To: "flexdev" <flexdev@googlegroups.com> > Subject: [flexdev] Re: TextInput & Ctrl+X > > > > > 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 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