2011-03-30 2 views
4

안녕하세요!youtube chromeless 플레이어를 통해 마우스 이벤트가 안정적으로 거품이 나도록 허용 하시겠습니까?

나는 youtube 비디오를 재생할 때 마우스 움직임을 읽고 추적 할 수 있어야하는 프로토 타입을 만들고 있습니다. 내 문제를 복제 할 수있는 기본 코드는이 간단한 테스트 케이스로 요약된다 :

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
layout="absolute" 
initialize="{go();}"> 
<mx:VBox> 
    <mx:Label id="test" text=""/> 
    <mx:SWFLoader source="http://www.youtube.com/apiplayer?version=3" /> 
</mx:VBox> 
<mx:Script> 
    <![CDATA[ 
    function go(){ 
    Security.allowDomain("*"); 
    Security.allowInsecureDomain("*"); 
    addEventListener(MouseEvent.MOUSE_MOVE, 
        function(e:MouseEvent){trace(test.text=e.stageX+"")}); 
    } 
    ]]> 
</mx:Script> 
</mx:Application> 

예상되는 동작은 다음과 같습니다

  • 유튜브 플레이어로드
  • 의 x 좌표 트랙 오른쪽 상단의 라벨 YouTube 플레이어 위에 마우스를 이동할 때 마우스는
  • 수는도 업데이트해야합니다

지금까지 프로그램 은 IDE (FlashDevelop와 FlashBuilder 모두에서 테스트 됨)에서 실행될 때 및 출력 폴더에서 수동으로 파일을 실행하는 경우에도 예상대로 작동합니다. 하지만, 슬프게도, 내가 컴퓨터에서 다른 위치 또는 웹 서버에서 디버그 폴더가 아닌 에서 실행하려고하면 Youtube 플레이어가 이벤트를 먹는 것으로 보입니다.

(의 allowDomain (덕분에 "*")를) 디버깅하지만 난 당신이 debug 폴더에서 파일을 일단 프로그램이 실패 이유에 대한 아이디어의 부족있을 때 나는 샌드 박스 보안 경고를하지 않습니다.

나는 으로 대단히은 실마리를 고맙게 생각합니다. 해결책이있는 한, 다른 곳에서 일한다는 증거가 있다면 플래시와 다른 기술을 시험해보고 싶습니다.

+0

요점이 무엇인지 물어볼 수 있습니까? 이 문제로 어떤 문제를 해결하려고합니까? 또한 swf loader의 applicationDomain을 다음과 같이 애플리케이션과 동일하게 설정해야합니다. 'applicationDomain = "{ApplicationDomain.currentDomain}"' –

+0

사용자가있는 게임 프로토 타입에 YouTube 동영상을 통합하려고합니다. 주어진 비디오에서 객체를 클릭하거나 드래그하도록 요청했습니다. 그 외에도 드래그 드롭과 같은 정상적인 동작을 허용하기 위해 마우스 이벤트를 적절하게 수행하는 것이 좋을 것이라고 생각합니다. –

+0

Gotcha. 다시 말하면 applicationDomain이 동일한 지 확인하십시오. 그때 작동합니다. –

답변

4

좋아, 그래서 누군가가 필요하면 어딘가에 기록하도록 내 자신의 대답에 대답하고있다.

시도한 것만 큼 보안 샌드 박스 설정을 조정할 때 성공하지 못했습니다. 나는 모든 가능한 조합과 주사위를 시도하기조차했다.

필자는 실제로로드가 끝나면 절대로 마우스 수신기를 Loader.content 속성에 추가하고있었습니다. 그리고 그것은 충분히 잘 작동했습니다.

로딩 응용 프로그램이 안쪽 마우스 논리를 방해하지 않고도 로데의 마우스 이벤트에 안전하게 액세스 할 수있는 유일한 장소입니다.

앞으로 다른 사람이 싫증나는 데 도움이되기를 바랍니다.