I가 대부분의 것들에 대한 좋은 작품을 사용자 정의 드래그 이벤트 :Event.MOUSE_LEAVE을 감지하는 방법 때 W 모드 = 불투명 또는 W 모드 = 투명
stage.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
function beginDrag(e:MouseEvent)
{
stage.addEventListener(MouseEvent.MOUSE_MOVE, drag);
stage.addEventListener(MouseEvent.MOUSE_UP, endDrag);
stage.addEventListener(MouseEvent.DEACTIVATE, endDrag);
stage.addEventListener(Event.MOUSE_LEAVE, endDrag);
stage.addEventListener(Event.REMOVED_FROM_STAGE, stageEndDrag);
//trigger beginDrag event
}
function drag(e:MouseEvent)
{
//trigger drag event
}
function endDrag(e:Event)
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, drag);
stage.removeEventListener(MouseEvent.MOUSE_UP, endDrag);
stage.removeEventListener(MouseEvent.DEACTIVATE, endDrag);
stage.removeEventListener(Event.MOUSE_LEAVE, endDrag);
stage.removeEventListener(Event.REMOVED_FROM_STAGE, stageEndDrag);
//trigger endDrag event
}
문제는 그 나는 wmode=transparent
또는 wmode=opaque
이 코드를 사용할 때 MOUSE_UP
이벤트가 스테이지에서 발생하면 MOUSE_LEAVE
이벤트가 감지되지 않습니다.
wmode
이 transparent
또는 opaque
일 때 MOUSE_LEAVE
이벤트를 감지하는 방법이 있습니까?
또는
작업이 주위에 구현 될 수 있도록 wmode
이 transparent
또는 opaque
로 설정되어 있는지 감지 할 수있는 방법이 있나요?
@weltraumpirat 'MOUSE_LEAVE' 이벤트가이 전에는 신뢰할 수 없다는 것을 결코 알지 못했습니다. 많은 사람들이'MOUSE_LEAVE' 이벤트가 발생하면 * 사용자가 마우스를 드래그하는 동안 마우스가 스테이지를 떠난 후에 * MOUSE_UP 이벤트가 발생할 때 혼란을 겪습니다. 마우스가'wmode = transparent/opaque'에서 스테이지를 벗어나면 마우스 이벤트가 처리되지 않는다는 것을 발견했습니다. 그래서이 메소드는 작동하지 않을 것입니다. – zzzzBov
문제가 생기면 항상 ENTER_FRAME 리스너를 사용할 수 있습니다. 가능한 경우 MOUSE_MOVE를 사용하는 것을 선호합니다. 자주 해고되지 않기 때문입니다. – weltraumpirat
@weltraumpirat 마우스가 스테이지를 떠날 때 마우스 이벤트가 하나도 발생하지 않습니다 (MOUSE_OUT 이벤트조차도). 마우스가 눌려 지거나 눌려지면, 새로운 마우스 이벤트는'buttonDown'에 대한 올바른 값을 등록하지 않습니다. 'ENTER_FRAME' 리스너가 어떻게 도움이 될지 모르겠습니다. – zzzzBov