在对象外部开始单击时防止 MouseUp
Posted
技术标签:
【中文标题】在对象外部开始单击时防止 MouseUp【英文标题】:Prevent MouseUp when click starts outside of object 【发布时间】: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)
谢谢
【问题讨论】:
【参考方案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 时才接受点击以上是关于在对象外部开始单击时防止 MouseUp的主要内容,如果未能解决你的问题,请参考以下文章
单击外部弹出框时如何防止 UIPopoverPresentationController 被关闭?