【问题标题】:Prevent MouseUp when click starts outside of object在对象外部开始单击时防止 MouseUp
【发布时间】:2012-08-01 03:52:48
【问题描述】:

我有一个 Sprite 对象,它是一个扑克筹码。当用户点击它时,出价会增加。我正在提高MouseUp 事件的出价。但是,如果用户在对象/芯片之外开始单击,然后将鼠标拖到芯片上并执行MouseUp,它会触发映射到MouseUp 的函数。如果单击在对象外部开始,我如何防止它触发。

this.addEventListener(MouseEvent.MOUSE_DOWN, pressChipDown)
this.addEventListener(MouseEvent.MOUSE_UP, pressChipUp)
this.addEventListener(MouseEvent.MOUSE_OUT, pressChipOut)



private function pressChipDown(e:MouseEvent):void
    {
        super.x = startX + 5;
        super.y = startY + 5;
    }

    private function pressChipUp(e:MouseEvent):void
    {
        increaseBid();
        super.x = startX;
        super.y = startY;
    }

    private function pressChipOut(e:MouseEvent):void
    {
        if(e.buttonDown) //if mouse button is down, move chip back but dont increase bid
        {
            pressChipUp(MouseEvent.MOUSE_OUT as MouseEvent)
        }
    }

谢谢

【问题讨论】:

    标签: events actionscript mouseevent


    【解决方案1】:

    翻滚时,开始听mouse down和mouse up,如果先上后下,那就是“假”

    this.addeventlistener(MouseEvent.ROLL_OVER, onOver)

    ...

    【讨论】:

    • 如何从那里开始收听 MouseDown 和 MouseUp?
    • 就像在其他任何地方一样。 addEventListener(MouseEvent.MOUSE_UP, onReleased)
    • 该类已经在监听 MouseDown 和 MouseUp。重新开始听对我没有任何好处。
    • 是的,这就是我的意思,你在结束时开始听,而不是最初。
    • 你也可以在 mouseOver 上添加一个 bool 标志并在 mouseOut 上重置它,并且只有在 bool 标志为 true 时才接受点击
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 2018-07-30
    • 2021-09-01
    • 2022-01-15
    • 2021-07-06
    • 2022-08-22
    相关资源
    最近更新 更多