ボタンをクリックしている間、ボタンが下がるようにしてみましょう。
ボタンを一つ作り、以下のスクリプトを打ち込んで下さい。
1
2
3
4
5
6
7
8
|
on mousedown
put the loc of me into meLoc
put item 1 of meLoc into x
put item 2 of meLoc into y
set the loc of me to x+2,y+2
wait while the mouse is down
set the loc of me to meLoc
end mousedown
|
このハンドラは、マウスのボタンが押し下がったときに実行されます。
put the loc of me into meLoc
まず、2行目で自分の中心座標を変数meLocに代入します。この1文は下のように考えて下さい。
「me(自分自身、すなわちスクリプトが書かれているボタン)」
の
「loc(中心座標)」
を
「変数meLoc」
に
「put 〜 into 〜 (上書き代入する)」
|
という事になります。
meLocには、例えば(200,100)というような状態で代入されています。この場合は、X座標が200、Y座標が100という事になります。
put item 1 of meLoc into x
3行目では、meLocの1番目のitemを取り出します。
itemとは、コンマで区切られたデータを指定しますので、この場合は1つ目のデータ(X座標)を変数xに代入します。
「変数meloc」
の
「item 1(コンマで区切られた1つ目のデータ)」
を
「変数x」
に
「put 〜 into 〜 (上書き代入する)」
|
itemの他には、char、word、lineがあり、これらの構成単位の事をチャンクと呼びます。チャンクについては、別のセクションで説明します。
put item 2 of meLoc into y
4行目は、3行目と同じようにY座標を変数yに代入します。
set the loc of me to x+2,y+2
5行目では、現在の座標(x,y)から右へ2ドット、下へ2ドット移動させた位置に表示します。
「me」
の
「loc」
を
「変数x +2、変数y +2」
に
「set 〜 to 〜 (設定する)」
|
wait while the mouse is down
6行目では、マウスボタンが下がっている間、実行が中断されます。
「mouse is down」
が
「while(正しい間、ずっと)」
ならば
「wait(待つ)」
|
この文は以下の様にも書くことができます。
wait until the mouse is not down
「mouse is not down」
が
「until(正しくない間、ずっと)」
ならば
「wait(待つ)」
|
これは、すなわち逆の書き方をしただけです。
set the loc of me to meLoc
最後の行では、最初の位置に表示し直します。
「me」
の
「loc」
を
「変数x、変数y」
に
「set 〜 to 〜 (設定する)」
|
|