原典:
http://compasstech.com.au/TNS_Authoring/Scripting/script_tut10.html
レッスン10.2「ダイナミックな表示にする」
これまでの作業によって、スクリプトを少し変更することは非常に簡単になりました。また、グリッドの中に円をはめ込むことで、図形数がどのように構築されてゆくのかを生徒に実際に見せることも、たやすくできるようになりました。作成しているスクリプトは現在、グリッドのときと同じように、nの値いっぱいまで円が表示されています。ここではさらに新たな変数tabを導入します。変数tabで円だけを増減させます。
レッスン9で使ったのとまったく同じon.paint函数を使います。その中に、太字で示した下の2行を追加します。最初の行は、tabの現在の値を取り込んでダミー変数tabsとしてストアする働きをします。drawCircles函数の引数であったnの値は、tabsの値へと置き換わっています。こうすれば、tabを変更することにより、パターンが1個ずつ増えたり減ったりするようになります。
local screen = platform.window
function on.paint(gc)
w = screen:width()
h = screen:height()
num = var.recall("n") or 1 -- numグリッド・パターンを増減する。
tabs = var.recall("tab") or 1 -- tabsで円パターンを増減する。
xval = math.floor(w/(num+4))
yval = math.floor(h/(num+4))
x = w/2 - (num)*(xval)/2
y = h/2 - (num)*(yval)/2
gc:setPen("thin", "smooth")
gc:setColorRGB(165,42,42)
drawArray(num, x, y, xval, yval, gc)
drawCircles(tabs, x, y, xval, yval, gc)
end
------------------------------------------------------------------
(訳註)今回の実行例