2010-11-26 2 views
2

My Flex 어플리케이션은 키보드 지향적입니다. 그것은 브라우저 창 100 %를 사용하고 사용자가 즉시로드를 시작하자마자 바로 사용할 수 있기를 바랍니다.키보드 이벤트를 받기 위해 사용자가 클릭 할 필요가 없도록 Flex 어플리케이션을 활성화하는 방법

그러나 마우스가 어딘가에서 마우스를 클릭하면 응용 프로그램이 처음 "활성화"(활성화 이벤트 발생)하는 것으로 보입니다. 이는 키보드가 많이 걸린 응용 프로그램에 매우 불편합니다.

로딩하는 동안/후에 어떤 시점에서 내 앱을 강제로 활성화 할 수 있습니까? 내가 오버레이 때마다 페이지가로드 "활성화하기 위해 내부를 클릭"바보를 표시 할 필요가 없습니다 희망

...

부록 특정 브라우저에서

([기침] 크롬 [/cough]) 사용자가 브라우저에서 전환하거나 주소 막대를 터치 할 때마다 포커스가 손실되고 다시 전환 할 때 이 아닌이 다시 회복됩니다. 따라서 솔루션은 페이지가로드 될 때 첫 번째 포커스뿐만 아니라 "다시 초점 맞추기"를 고려해야합니다.

답변

5

AFAIK 문제는 Firefox와 같은 특정 브라우저에서만 발생합니다. 자바 스크립트를 사용하여 해당 동작을 변경할 수 있습니다. 당신의 index.template.html을 편집하고 <head></head> 태그 내에 다음 코드를 추가 :이 응용 프로그램을 컴파일 할 때

<script type="text/javascript"> 
    function setFocusToSwf() { 
     var swf = document.getElementById('${application}'); 
     if (swf) swf.focus(); 
    } 
</script> 

플렉스 빌더는 ${application} 자리를 대체합니다.

ExternalInterface.call("function() { 
    var app = document.getElementById('App'); 
    if(app) { 
     app.tabIndex = 0; 
     app.focus(); 
    } 
}"); 

라비 Sankar :

<body onload="setFocusToSwf()"> 
+0

+1 $ {application}의 현명한 사용. – alxx

+0

사실, 파이어 폭스는 크롬에 비해 좋은 소년입니다. 파이어 폭스에서는 적어도 애플리케이션이 포커스를 얻으면 브라우저에서 다른 곳으로 전환하면 되돌릴 수 있습니다. 그러나 Chrome에서는 SWF 외부의 항목을 터치 할 때마다 다시 클릭해야합니다. onload 솔루션은이 문제를 해결할 수 없다고 생각합니다. –

+0

실제로이 솔루션은 FF에서 작동하지만 Chrome에서는 전혀 작동하지 않습니다. –

1

가 크롬에서 작동 얻을 생성에를 사용하여 브라우저가 문서를로드 완료되면 새로운 기능이 불려 가도록 (듯이)

<body> 태그를 변경

Gonthina

관련 문제