События мыши на изображении в smalltalk
У меня есть следующий класс в светской беседе
Object subclass: #SnookerBall
instanceVariableNames: 'image type position'
classVariableNames: ''
poolDictionaries: ''
category: 'mmn16'
initialize
self initialize.
image := ImageMorph new image: (Form fromFileNamed: 'ball_1.gif').
image position:100@100.
Теперь я хочу реализовать события мыши на изображении. в основном мне нужно симулировать бильярдный шар. Поэтому мне нужны события мыши (нажатие, перетаскивание и т. Д.), Чтобы они выглядели анимированными.
Пожалуйста, помогите Спасибо заранее
Хорошо, у меня есть отредактированный класс SnookerBall
ImageMorph subclass: #SnookerBall
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Snooker'
и инициализировать метод
initialize
self image: (Form fromFileNamed: 'ball_1.gif');
extent:40@40;
position:0@0.
Я пытаюсь выполнить:
b:=SnookerBall new.
b openInWorld.
и у меня есть ошибка: MessageNotUnderstood: UndefinedObject>>hasPositiveExtent
пожалуйста помоги
1 ответ
Ты можешь попробовать Morph>>on:send:to:
:
SnookerBall>>
initialize
"..."
image on: #click send: #ballClicked to: self
ballClicked
"pop up a modal dialog"
self inform: 'Ball was clicked'
... вызывать ballClicked
на объекте SnookerBall при нажатии на ImageMorph.
Посмотри на EventHandler>>on:send:to:
чтобы увидеть возможные аргументы для: #mouseDown, #mouseMove, #click, ...
Если вам нужен аргумент для полученного сообщения, рассмотрите Morph>>on:send:to:withValue:
,