HyperCard tribute

押すと下がるボタン


 ボタンをクリックしている間、ボタンが下がるようにしてみましょう。
 ボタンを一つ作り、以下のスクリプトを打ち込んで下さい。
 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 〜 (設定する)」