タイルスクリプトの制御構造

いままでは、IF THEN/ELSEしかなかったのが、なんかいろいろ増えてます。普通のプログラミング言語っぽいです。タイル上の表現が完全にSmalltalk流のままです。そのうち変わるのかもしれませんが。

論理式 ifTrue ブロック

まだifFalseのブロックは書けないようです。

数値 timesRepeat ブロック

定数回数の繰り返し処理。

For Each イベント1 do (ブロック)until イベント2

起動イベントが発火する都度処理をone shot実行。非同期に発生するイベントを同期処理的に扱える、便利で興味深い構文ですね。

Wait 数値

タイマーウェイト。Andreasのメモにもありましたが、時間を記述する手段を得たことで、メディア系のスクリプトは書きやすくなりますね。

今までのetoyでは、微小時間ステップの無限ループの実行モデルでしたが、無限ループの実行がスクリプトのどこかで止まっているという状態が導入されるのは大きな変更点です。スクリプトデバッガが欲しくなりそう。。。
以下気がついたことです。

  • スクリプトを持つWidgetについて緑ハロで複製を作ったとき、複製のスクリプタにアクセスできないみたいです。Pause状態のスクリプトを持つものを複製すると、Tick状態になります。また、複製のビュアーからそのスクリプトの状態を見ても、Pauseのままです。
  • All Scriptツールを見つけられず(まだ開発されてない?)、たくさん作ったスクリプトをなかなか止められなくて困りました。。。