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