添加单击事件处理以进行变形

时间:2014-07-08 08:47:30

标签: smalltalk pharo morphic

我想以简单的方式处理鼠标点击变形。我可以这样做:

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

1 个答案:

答案 0 :(得分: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

要点当然是要有一个块,并确保你能对点击作出反应。