首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Morphic中的事件传播

Morphic中的事件传播
EN

Stack Overflow用户
提问于 2010-01-19 22:06:18
回答 2查看 561关注 0票数 9

我有一个Squeak图形用户界面的图像,其中包含一些透明的部分,因此不应该接受任何鼠标事件等,但只是可见,但它需要在其他变形可见。

这就是为什么我认为将出现的鼠标事件传播到底层的变形中会很有用。有没有人知道我的问题的解决方案或其他解决方案。

代码语言:javascript
复制
    V                         <- mouseDownEvent
_____________________________ <- transparent image (BorderedMorph)
  _____    _____     _____
_|     |___|    |___|     |__ <- buttons waiting for click and drop events

_____________________________ <- basic morph

我希望这能说明我的问题。

EN

回答 2

Stack Overflow用户

发布于 2010-07-14 05:21:47

我能想到的最好的事情是这样的(顺畅程度递增,可能性递减)

  1. 记录事件,按tab键移开透明图像,然后重播事件。这似乎是一种低效和糟糕的方法。
  2. 以某种方式跟踪透明图像背后的焦点,并将事件传递给它。我不熟悉有问题的库,所以我不知道是否可以这样做。如果你能控制其他层,这是最有可能的方法。OSD窗口往往会这样做,我不确定如何做到这一点。如果你能这样做,我建议你...但考虑到你在问这个问题,你可能不会问。
票数 2
EN

Stack Overflow用户

发布于 2012-07-19 00:07:06

默认情况下,变形鼠标事件在最顶部的变形中处理。然而,父变形能够使用#mouseDownPriority截获向子变形的#mouseDown

你的透明图片获得了所有的点击,因为它是最顶端的。看看#rejectsEvent:吧。它只是结合了#isLocked#visible来拒绝事件。您可能希望覆盖此选项,以便即使可见也拒绝事件。

例如:

代码语言:javascript
复制
MyMorph>>rejectsEvent: anEvent
  ^ true "Ignores all events."
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2093988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档