Morphic GUI中的事件传播

我有一个Squeak Morphic GUI的图像,它包含一些透明部分,因此不应该接受任何鼠标事件等但只是可见,但它需要在其他变形前面可见。 这就是为什么我认为将出现的鼠标事件传播到底层变形是有用的。有没有人知道我的问题的解决方案或解决它的其他建议。
    V                         <- mouseDownEvent
_____________________________ <- transparent image (BorderedMorph)
  _____    _____     _____
_|     |___|    |___|     |__ <- buttons waiting for click and drop events

_____________________________ <- basic morph
我希望这说明我的问题。     
已邀请:
我能想到的最好的事情是沿着以下几点(顺序的增加顺序,以及降低工作可能性的顺序) 记录事件,标记透明图像,然后重播事件。这似乎是一种效率低下且做得不好的方式。 以某种方式跟踪透明图像背后的焦点,并将事件传递给它。我不熟悉有问题的库,所以我不知道是否可以这样做。如果您可以控制其他图层,这很可能是最佳选择。 (您可以使用该mouseDownEvent直接调用他们的'发生鼠标事件'函数,但您仍然必须确定哪一个会收到它)。 简单地将它声明为不会在任何可用级别上传递鼠标事件的东西。 OSD窗口倾向于这样做,我不知道如何。如果你能这样做,我会建议......但鉴于你问这个问题,你可能不会。     
默认情况下,Morphic鼠标事件在最顶层的变形中处理。但是,父变形能够使用
#mouseDownPriority
拦截
#mouseDown
给孩子。 您的透明图片会获得所有点击,因为它是最顶层的。看看
#rejectsEvent:
。只是将
#isLocked
#visible
结合起来拒绝事件。您可能希望覆盖此以便即使可见也拒绝事件。 例如:
MyMorph>>rejectsEvent: anEvent
  ^ true "Ignores all events."
    

要回复问题请先登录注册