0

我正在创建一个可以拖动的按钮栏,但是当我在拖动按钮后抬起手指时,按钮被按下,我想在拖动按钮时取消单击/点击有什么建议吗?谢谢

4

1 回答 1

0

您需要根据需要删除/添加您的侦听器,或者在您的按钮上有一个属性。就像是:

public class DragButton extends Sprite
{
    public var isDragging:Boolean = false;

    public function DragButton()
    {
        // add our listeners
        this.addEventListener( MouseEvent.MOUSE_DOWN, this._onMouseDown );
        this.addEventListener( MouseEvent.MOUSE_UP, this._onMouseUp );
        this.addEventListener( MouseEvent.CLICK, this._onMouseClick );
    }

    private function _onMouseDown( e:MouseEvent ):void
    {
        // add our move listener for dragging
        this.addEventListener( MouseEvent.MOUSE_MOVE, this._onMouseMove );
    }

    private function _onMouseUp( e:MouseEvent ):void
    {
        // remove our dragging listener
        this.removeEventListener( MouseEvent.MOUSE_MOVE, this._onMouseMove );
    }

    private function _onMouseMove( e:MouseEvent ):void
    {
        // drag us
        this.x = e.stageX;
        this.y = e.stageY;
        this.isDragging = true;
    }

    private function _onMouseClick( e:MouseEvent ):void
    {
        // if we're dragging, ignore
        if( this.isDragging )
        {
            this.isDragging = false;
            return;
        }

        // do our click stuff
    }
}
于 2013-09-18T21:38:03.743 回答