3

我想以一种简单的方式处理鼠标点击变形。我可以做类似的事情:

'hello' asMorph
  onClick: [ :e | "baboom" ];
  openInHand

?

4

1 回答 1

3

像这样的东西?

StringMorph subclass: #ClickMorph
    instanceVariableNames: 'action'
    classVariableNames: ''
    category: 'MyMorph'

handlesMouseDown: evt
    ^true

mouseDown: evt
    evt hand waitForClicksOrDrag: self event: evt

mouseUp: evt
    action value

action
    ^ action

action: anObject
    action := anObject

你可以称之为

(ClickMorph contents: 'Click me') 
    action: [Transcript open];
    openInWorld

要点当然是要有一个块并确保您可以对点击做出反应。

于 2014-07-15T17:02:02.277 回答