2011-03-29 3 views
0

나는 공기 응용 프로그램을 개발 중입니다. 공기 응용 프로그램에서 바로 가기 기능을 구현해야합니다.창 바로 가기 키로 야외 응용 프로그램을 엽니 다.

예를 들어 ctr 및 S와 같은 두 개의 키를 누를 때마다 개방형 플렉스 에어 애플리케이션이 실행됩니다. 그리고 ctr 및 q 키와 같은 두 개의 키를 누를 때마다 플렉스 에어 응용 프로그램을 닫습니다.

플렉스가 가능합니까?

감사합니다.

+0

stage.addEventListener (KeyboardEvent.KEY_DOWN, onKeyDown). 이 코드는 응용 프로그램에 집중할 때만 작동합니다. 시스템 트레이에 저장소 응용 프로그램이 있지만 단축키를 사용하면 작동하지 않습니다. 다른 방법으로 알려 주면 알려주세요. 감사합니다 – Nidhi

답변

2

실행되지 않는 프로그램이 키 명령을 가로 챌 수 없습니다. 따라서 일부 핵심 명령으로 시작하도록 응용 프로그램에 지시 할 수 없습니다. 프로그램을 이미 실행해야하거나 OS에 해당 키 명령을 설정해야합니다 (Windows의 경우 속성 패널에서이를 수행 할 수 있습니다).

다른 명령은 비교적 간단합니다. KeyDown 이벤트를 수신하고 조합이 눌러 졌는지 확인하십시오. 그렇다면 응용 프로그램을 종료하십시오.

+0

키 이벤트를 듣기 위해이 대답을 확장하려면 keyCode와 charCode가있는'KeyboardEvent'를 반환하는 stage.addEventListener (KeyboardEvent.KEY_DOWN, onKeyDown);와 ctrl/alt에 대한 여러 플래그를 입력하십시오./shift 키를 누릅니다. –

1

이해할 수 없습니다.

이러한 종류의 기능을 사용하려면 데몬이나 백그라운드 프로세스가 필요합니다. 왜냐하면 AIR에서는 초점이 맞지 않을 때 (별칭 키 로거) 키를 수신 할 수 없으므로 기본 응용 프로그램 (다른 OS에 대해 다른 버전)이어야합니다.

다른 방법으로는 OS 구성에서 키 스트로크를 설정하는 것일 수 있습니다. 그러나 다시 한번 이것은 다른 OS에서 매우 다르며 AIR에서 지원되지 않습니다. 기본 프로세스도 필요합니다.

이 프로세스를 작성하는 데 많은 시간을 투자하고 싶지 않다면이 작업을 간단하게 만들 수 있습니다. 각각의 OS마다 하나씩 작성해야합니다.

+0

stage.addEventListener (KeyboardEvent.KEY_DOWN, onKeyDown); keyCode와 charCode가있는 KeyboardEvent와 ctrl/alt/shift가있는 경우에 대한 여러 플래그를 반환합니다.이 코드는 응용 프로그램에 집중할 때 작동합니다. – Nidhi

+0

공중에서 키 코드를 잡는 것이 가능하다고 생각하지 않습니다. 첫째, 보안 문제가 있습니다. 어도비는 많은 보안 기반 제한을두고 있습니다. 키 코드, 일부 데몬 프로그램을 청취하는 백그라운드 응용 프로그램이 있어야합니다. 키로거처럼 들립니다. Flex는 포커스가있을 때만 키보드 이벤트를받습니다. – midhunhk

관련 문제