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

Responder a