【发布时间】:2011-07-23 02:57:24
【问题描述】:
我有一个自定义的拖动事件,它适用于大多数事情:
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 以便实施解决方法?
【问题讨论】:
标签: flash events wmode mouseleave