忽略nativeWindow事件监听器

发布于 2024-12-10 06:13:04 字数 460 浏览 1 评论 0原文

这已经困扰我好几天了,在谷歌搜索后似乎无法得到答案......

问题很简单,

我有一个带有事件监听器的矩形,如下所示:

rect.addEventListener(MouseEvent.MOUSE_DOWN, startMove);

private function startMove(event:MouseEvent):void
{
    this.nativeWindow.startMove();
}

这工作正常。

我在这个矩形内还有一个按钮,当我单击该按钮时,窗口会拖动,就像我单击了该矩形一样。

我怎样才能阻止这种情况发生?我尝试删除该事件,但没有用,我什至不知道要删除哪个事件,mouseDown 或 NativeDrag 事件...nativeWindow 中没有 stopDrag() 函数。有一个简单的解决方案吗?

非常感谢任何帮助!

This has been bugging me for days, cant seem to get an answer after googling forever...

Problem is simple,

I have a rectangle with an event listener like so:

rect.addEventListener(MouseEvent.MOUSE_DOWN, startMove);

private function startMove(event:MouseEvent):void
{
    this.nativeWindow.startMove();
}

this works fine.

I also have a button inside this rectangle, and when I click the button the window drags just like if I had clicked on the rectangle.

How can I stop this from happening? I tried removing the event but that didn't work, I don't even know which event to remove, the mouseDown or NativeDrag event... There is no stopDrag() function in nativeWindow. Is there a simple solution?

Any help highly appreciated!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

朦胧时间 2024-12-17 06:13:04

仅当事件的目标(事件的来源)是您正在侦听的调度程序时,您才需要处理该事件。调度程序通过 event.currentTarget 进行标识。因此,您的代码需要如下所示:

rect.addEventListener(MouseEvent.MOUSE_DOWN, startMove);

private function startMove(event:MouseEvent):void
{
   if (event.target == event.currentTarget)
      this.nativeWindow.startMove();
}

PS 我注意到您是 Stack Overflow 的新手 - 欢迎!如果您觉得我的回答有用,请务必点赞并通过绿色复选标记接受

You need to only process the event if the event's target (where it originated from) is the dispatcher you were listening to. The dispatcher is identified via event.currentTarget. So this is what your code needs to look like:

rect.addEventListener(MouseEvent.MOUSE_DOWN, startMove);

private function startMove(event:MouseEvent):void
{
   if (event.target == event.currentTarget)
      this.nativeWindow.startMove();
}

P.S. I notice you're new to Stack Overflow - welcome! If you find my answer useful, please be sure to upvote it and accept it via the green checkmark

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文