我有一个Squeak Morphic GUI的图像,其中包含一些透明部分,因此不应该接受任何鼠标事件等但只是可见,但它需要在其他变形前面可见。
这就是为什么我认为将出现的鼠标事件传播到底层变形是有用的。有没有人知道我的问题的解决方案或解决它的其他建议。
V <- mouseDownEvent
_____________________________ <- transparent image (BorderedMorph)
_____ _____ _____
_| |___| |___| |__ <- buttons waiting for click and drop events
_____________________________ <- basic morph
我希望这能说明我的问题。
答案 0 :(得分:2)
我能想到的最好的事情是沿着以下几点(按顺序增加顺序,降低工作可能性的顺序)
答案 1 :(得分:2)
默认情况下,Morphic鼠标事件在最顶层的变形中处理。但是,父变体可以使用#mouseDown
拦截#mouseDownPriority
个孩子。
您的透明图片会获得所有点击,因为它是最顶层的。看看#rejectsEvent:
。它只是将#isLocked
和#visible
结合起来拒绝事件。您可能希望覆盖此操作,以便即使可见也拒绝事件。
例如:
MyMorph>>rejectsEvent: anEvent
^ true "Ignores all events."