funfunfun13
■マウスイベント
モーフをマウスでいろいろいじりたいときはどうするのかですがマウスイベントってのを
使うといいみたいです。キーイベントってのもあるけどそれはまたいつか。
■クラスを作る
Morphクラスのサブクラスを作りまする。<前やったのと同じね。
--------------------------------------------
Morph subclass: #TestMorph5
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'MyMorph'
--------------------------------------------
アクセプトね。
Alt + s ( Cmd + s )
■インスタンスを出します。
確認の為にWorkspaceに下記のコードを書いてドゥーイット。
--------------------------------------------
TestMorph5 new openInWorld
--------------------------------------------
Alt + d ( Cmd + d )
■メソッドを追加
「initialize」メソッドを書きます。これまた前と同じ。
--------------------------------------------
initialize
super initialize.
self extent: 50@50.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
■マウスエンター、マウスリーブ
モーフの上にマウスカーソルが入ったときにモーフの色を赤にします。
--------------------------------------------
mouseEnter: evt
self color: Color red.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
マウスカーソルがモーフの領域から出たら元に(青)に戻します。
--------------------------------------------
mouseLeave: evt
self color: Color blue.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
マウスオーバーを許可する?ってことかな?これを書かないとうんともすんともです。
--------------------------------------------
handlesMouseOver: evt
^ true.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )そして
試してみましょうマウスカーソルがモーフの中に入ると赤に、出ると青になりました。
■マウスダウン、マウスアップ
マウスを押すとモーフが45度回転するようにします。
--------------------------------------------
mouseDown: evt
self heading: 45.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
マウスを放すと元に戻るようにします。
--------------------------------------------
mouseUp: evt
self heading: 0.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
マウスダウンを許可する?ってことだとおもうです。
--------------------------------------------
handlesMouseDown: evt
^ true.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
試してみましょう。
マウスカーソルがモーフの中に入ると赤になり、マウスを押すと45度回転、
マウスを放すと元に戻り、カーソルをモーフから出すと元の青に戻ります。
よっしゃ!!
■マウス右ボタンでドラッグできるようにする
モーフをドラッグで動かそうとしてもいまのままでは動きません。
なので「handlesMouseDown」メソッドを以下のように書き直しちゃいましょう。
右ボタンでドラッグ移動が出来まする。
--------------------------------------------
handlesMouseDown: evt
^ evt yellowButtonPressed not.
--------------------------------------------
アクセプト。
Alt + s ( Cmd + s )
「yellowButtonPressed」のほかにもいろいろな条件で出来まする。
RedButtonPressed(これやるとここでは回転しないけどね)
shiftPressed
commandKeyPressed(ハロ出ちゃうか・・・)
controlKeyPressed(これもあかんな)
optionKeyPressed(これもだめっす)
とかね。
▲PREV ------ ● TOP ● ------ NEXT▼
■ MEMO ■
Monday, 12 January 2004, 8:26:47 pm
回転させるメソッドをMorphクラスで探したけどみつからない。
Morphクラスの親びんのObjectクラスでもみつからない・・・・
で、Playerクラスのメソッドでも使えるんじゃないかと
思ってやったらとりあえず動いたです。普通はどうすんだ?--thoru
Monday, 12 January 2004, 8:26:31 pm
マウスイベント&キーイベントはMorphクラス>eventhandlingカテゴリをみるべし。--thoru
Monday, 12 January 2004, 8:25:51 pm
マウスイベント系
mouseEnter
mouseEnterDragging
mouseLeave
mouseLeaveDragging
mouseDown
mouseUp
mouseStillDown
mouseStillDownThreshhold
startDrag
click
doubleClik
ついでにKeyイベント系
keyDown
keyStroke
keyUp
--thoru
Links to this Page
- FunFunFunMorphic last edited on 25 March 2004 at 5:25:44 am by tk0005-202x210x196x109.ap-TK.usen.ad.jp
- funfunfun12 last edited on 22 March 2016 at 4:06:34 pm by localhost
- funfunfun14 last edited on 18 June 2007 at 5:24:20 am by localhost.localdomain