2012-08-07 3 views
0

Flash에서 확장형 배너 광고를 만들었습니다. 한 가지를 제외한 모든 것이 훌륭합니다. 사용자가 더 이상 플래시 광고 위에 마우스를 올려 놓지 않았을 때 어떻게 감지 할 수 있습니까? 나는 MOUSE_OUT를 탐지하는 데 사용할 수있는 "히트 영역"을 광고하려했습니다. 문제는 클릭 재생이 가능한 소셜 미디어 버튼뿐 아니라 동영상 재생이 있다는 것입니다. 이 위에 히트 영역을 배치하면 더 이상 클릭 할 수 없습니다. 버튼 뒤쪽에 히트 영역을 배치하면 버튼 위로 마우스를 가져 가면 MOUSE_OUT 이벤트가 트리거됩니다.플래시 확장형 배너 - 마우스 이탈 감지

이와 같은 시나리오의 모범 사례는 무엇입니까? 스테이지 객체에서 MOUSE_LEAVE을 탐지하려고했지만 HTML 페이지에 배치 된 후에는 제대로 작동하지 않는 것 같습니다. 도움을 주셔서 감사합니다.

+0

아마도이 기능을 사용할 수 없습니까? 필자가 보았던 확장 가능한 플래시 광고는 일반적으로 사용자가 닫기 버튼을 클릭 할 때까지 펼쳐진 상태를 유지합니다. 대부분 이것에 동의합니까? – Chris

+1

주 컨테이너에서 roll_out 이벤트를 사용할 수 있는지 잘 모름 topLevelSprite.addEventListener (MouseEvent.ROLL_OUT, buttonRollOutHandler); 또는 아마 무대에 추가 ... 또 다른 옵션 ExternalInterface 및 javascript 메서드를 사용하여 롤아웃 및 콜백 감지 플래시 – shaunhusain

답변

0

stage.mouseXstage.mouseY을 계속 확인하는 ENTER_FRAME 이벤트를 추가 할 수 있습니다. 이러한 값은 마우스가 Flash 내용에있는 동안 올바르게보고되어야하며 마우스가 더 이상 스테이지에 없을 때 마지막으로 알려진 마우스 좌표를보고합니다. 그러나 마지막으로 알려진 마우스 좌표가 스테이지의 실제 너비 또는 높이가 아닐 수도 있으므로 아마 거기에 약간의 공차를 추가하고 싶을 것입니다. 당신의 (확장) 플래시 컨텐츠 폭이 500 픽셀 인 경우 stage.mouseX 미만 10px (왼쪽으로 떨어져 이동 마우스) 또는 이상 490px이 (마우스가 떨어져 이동하는 경우

는 예를 들어, ENTER_FRAME 경우에 당신은 확인하실 수 있습니다 오른쪽) 플래시 콘텐츠를 최소화하십시오. 높이만큼 반복하고 필요에 따라 공차 값을 조정합니다.

이렇게하면 원하는 효과를 얻을 수 있습니다. 볼 수있는 유일한 단점은 마우스가 콘텐츠를 떠 났는지 여부를 확인하기위한 ENTER_FRAME 이벤트의 오버 헤드이지만 그 주위에는 어떤 방법도 보이지 않습니다.