2012-01-25 4 views
1

Javascript의 마우스 이벤트를 사용하여 마우스 위치 정보를 전달하고 마우스 위치에 따라 특정 애니메이션 프레임을 표시합니다.마우스가 플래시 위에있을 때 Javascript mousemove 이벤트가 실행되지 않습니다.

마우스가 플래시 객체 위에있을 때 자바 스크립트 이벤트를 더 이상 발생시키지 않는 것이 문제입니다. Chrome에서 테스트했는데 작동하는 것처럼 보였지만 Firefox는 협조하고 싶지 않습니다.

내 플래시 개체는 웹 사이트 중간에 위치하고 배경이 투명합니다. 그것은 이쪽에 있어야합니다. 또한, 차라리 두 가지 이유 액션 스크립트로 작업을 이동하지 않는 게 좋을 :

  1. 웹 사이트의 폭 (예를 들어 다른 브라우저) 일정하지 그래서 나도 플래시에 뷰포트의 폭을 추진해야 할 것이다하는 스크립트, 심지어 mouseenter 이벤트 등을 복잡하게합니다.

  2. 나는 아주 잘 모른다.

코드 : (그것은 또한 페이지에 다른 곳에서 사용 있기 때문에 내가 여기에 jQuery를 사용하고, 이전 모형 일반 JS를 사용)

function viewport() 
    { 
     var e = window 
     , a = 'inner'; 
     if (!('innerWidth' in window)) 
     { 
     a = 'client'; 
     e = document.documentElement || document.body; 
     } 
     return e[ a+'Width' ]; 
    } 

    puszka = document.getElementById("puszka"); 

    $().mousemove(function(e) 
    { 
     var x = e.pageX || e.clientX + document.body.scrollLeft; 
     var frame = Math.floor(x * 100/viewport()); 
     puszka.transformCan(frame); 
    }); 

답변

2

액션 스크립트는 움직임 마우스 이벤트를 인식 할 수 있습니다를, 클릭 등. 그래서 플래시가 모든 것을 마스터하는 영역에서 Firefox가 책임을 플래시 객체로 전달한다고 가정합니다.

AS에서의 마우스 이동은 어렵지 않습니다. Javascript를 알고있는 경우 제공된 설명서를 사용하여 Actionscript를 효율적으로 코딩 할 수도 있습니다. "yourfunction"수 "의 ExternalInterface"를 통해 자바 스크립트 함수를 호출 할 수있는 핸들러

stageObj.addEventListener(MouseEvent.MOUSE_MOVE, yourFunction); 

을하고있다 : 만약 내가 올바르게 기억

만 청취자에게 무대를 추가해야합니다.

+0

문제는 프레임을 올바르게 계산하기 위해 문서에서 플래시의 상대적 위치를 알아야한다는 것입니다. – d4rky

+1

다음 캡처 된 X와 Y 위치 – Stefan

+0

예, 호출 자바 스크립트 함수를 전달 예, 나는 그것에 고착 할 것입니다, 감사합니다 :) – d4rky

관련 문제