The Green Shoes Manual 1.1.357
Events
どのようにしてマウスのクリックを離したことやキーボードをタイプしたことが分かるか 不思議に思いませんか?スロットの内部でマウスが動いたときはいつでもイベントが スロットに送られます。また、キーが押されたときはいつでも。 スロットが作成されたり破壊されたときでさえ。それぞれのそれらのイベントをブロックを 取り付けることができます。
マウスイベントはmotion
、click
、hover
そしてleave
を含みます。 キーボードのタイピングはkeypress
イベントによって表されます。 そしてstart
やfinish
イベントはキャンバスを開始するときや破棄されたときを指し示します。
では、マウスでスロットの上をフロートするときに背景を変更したいとしましょう。 スロットの内部にマウスがくるときに背景を変更するためにはhover
イベントを使います。 そして、マウスがフロートして離れるときに戻すにはleave
を使います。
Shoes.app do
s = stack width: 200, height: 200 do
background red
end
s.hover do
s.clear { background blue }
end
s.leave do
s.clear { background red }
end
end
マウスボタンがクリックされたときにはclickブロックが呼ばれます。 button
はマウスボタンのどれが押されたかの数です。 left
やtop
はどこがクリックされたかのマウスの座標です。
マウスのクリックを離した瞬間をとらえるには、releaseイベントを見てください。
スロットが取り除かれたときは、finishイベントが発生します。 finishブロックはすぐにself
を手渡し、スロットオブジェクトは取り除かれます。
注意: Green Shoesはfinish
メソッドをサポートしていません。
hoverイベントはスロットにマウスが入ったときに発生します。 このブロックはself
を手に入れ、どのオブジェクトの上を通ったかを意味します。
スロットからマウスが出ていくことをとらえるには、leaveイベントを確認してください。
キー(またはキーの組み合わせ)がいつ押されても、そのブロックは呼ばれます。 そのブロックにはキーの性質を表す文字列であるkey
を送られます。
そして、例えば、Shift-a
が押されたなら、そのブロックは"A"
の文字列を得ます。 また、F1が押されたなら、 F1
の文字列を受けとります。
"Control_L"
, "Shift_L"
, "Alt_L"
は左サイドに位置する修飾キーです。 もしShift-Control-Alt-PgUp
が押されたなら、得られる文字列は、以下の順番で現れます: "Shift_L"
, "Control_L"
, "Alt_L"
, "Page_Up"
シフトキーについて1つ。USキーボードでは、Shift-7
はアンパサンド(&)です。 そのため、"Shift_L"
と"7"
ではなく、"Shift_L"
と"ampersand"
を得ます。 そして、そのようなキーボードでShift-Alt-7
を押したら、"Shift_L"
と"Alt_L"
と "ampersand"
という文字列を得るでしょう。
Shoes.app do
info = para "NO KEY is PRESSED."
keypress do |k|
info.replace "#{k.inspect} was PRESSED."
end
end
スロットからマウスカーソルが出て行くときleaveイベントが発生します。 その瞬間すでにマウスカーソルはスロットの端の中にはありません。 leaveイベントが発生するとき、self
とともにブロックが呼ばれ、そのスロットオブジェクトは 取り残されます。
スロットにマウスが入ることを見つけたいならhoverも見てください。
マウスがスロットの内部を移動するたびにモーションのブロックは呼ばれます。 ブロックはカーソルのleft
やtop
の座標を渡します。
Shoes.app width: 200, height: 200 do
background black
fill white
circ = oval 0, 0, 100, 100
motion do |top, left|
circ.move top - 50, left - 50
end
end
マウスがアンクリック(マウスアップ)のときにreleaseのブロックは実行されます。 それは指が持ち上げられたときです。button
は押し下げられたボタンに対応する数です。 left
やtop
はボタンが離されたときのマウスのの座標です。
実際のマウスクリックを捕まえるには、clickイベントを利用してください。
初めてスロットが描かれるとき、スタート(start)イベントが実行されます。 まさに今描かれたスロットオブジェクトがself
としてブロックに渡されます。
注意: Green Shoesはstart
メソッドをサポートしていません。
Next: Manipulation Blocks