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 に答える