2013-03-29 1 views
0

저는 아이디어가 흘렀습니다. Chrome에서 웹 페이지의 내장 된 SWF에 키보드 이벤트를 발생시켜야합니다.자바 스크립트를 사용하여 브라우저에서 SWF의 주요 이벤트를 발생시켜야합니다.

그리고 몇 가지 제한 사항을 처리 해요 :

  • 이벤트를 자바 스크립트에서 온이 입력
  • 나는 소스에 액세스 할 수없는 이벤트는 SWF
  • 에 발사 될 필요가
  • swf의

내가 어떻게 끝내 느냐는 중요하지 않습니다. 그것은 개인 프로젝트 이상의 것이므로 원하는만큼 많은 허점을 가질 수 있습니다.

나는 자바 스크립트에서 직접 조사를 조사했지만, 나는 이것이 단순히 불가능하다고 결론 내렸다. 다른 사람에게 아이디어가 있습니까? 어떻게 든 Win32 API를 사용할 수 있습니까?

+0

이상적으로 swf 소스를 사용하고 [ExternalInterface] (http://learnswfobject.com/advanced-topics/external-interface/)를 사용하여 javascript의 매개 변수로 actionscript 함수 호출을 전달할 수 있습니다. 캡처 된 키 이벤트. 마음에 오는 해킹 된 아이디어는 원본 swf를로드하는 다른 swf를 만들고, 필요한 js 통신을 수행하고, KeyboardEvent를 원본 swf에 디스패치하는 것입니다. 최악의 시나리오는 너무 복잡하거나 혼란스럽고 잘 작동하지 않는 코드를 가지고 있지 않은 원본 swf를 디 컴파일 할 수 있습니다. –

답변

0

SWF가 자신의 것으로 가정하고 있는데,이 경우 ExternalInterface.call();을 사용할 수 있습니다. 메서드를 사용하여 호스트 페이지에서 직접 JS를 실행하고 ExternalInterface.addCallback() 함수를 사용하여 AS 함수를 JS가 포함 된 SWF에서 호출 가능하도록 등록 할 수 있습니다. 당신은 SWF의 소스에 액세스 할 수없는 경우

docs

0

, 그것은이 작업을 수행 할 수있는 유일한 방법으로 순식간에 콜백을 등록하고 JS에서 그들을 호출하는 것입니다, 불가능하다. 물론 모든 콜백은 dispatchEvent 메서드를 사용하여 원하는 이벤트를 트리거해야합니다 (또는 이벤트 수신 기능을 직접 호출해야 함).

문제를 해결하는 유일한 방법은 .swf (예 : Sothink SWF Decompiler 사용)를 디 컴파일하는 것입니다. 코드가 난독 화되지 않으면 출력 코드가 읽기 및 리팩터링을 수행 할 수있을만큼 충분히 명확합니다. 디 컴파일, 콜백 추가 (ExternalInterface.addCallback() 사용) 및 새로운 시간 컴파일.

관련 문제