TI-Nspire & Lua / スクリプティングのヒント / Nspire 側の変数を Lua に呼ぶときは on.timer() 内で var.recall() を使うのではなく var.monitor() と on.varChange() とを使う
参考:
.lua
--[[方法 1. on.timer() 内で var.recall() を使う local slider1 = nil function on.construction() on.timer() -- 最初に Nspire 側の変数の初期値を呼んでから timer.start(0.1) -- タイマーをスタートする。 end function on.timer() slider1 = var.recall("slider1") -- タイマーの tick するたびに Nspire 側の変数の現在の値を lua に呼ぶ。 end function on.paint(gc) gc:fillRect(0, 25, slider1, 10) end --]] ---[[方法 2. var.monitor() と on.varChange() とを使う local slider1 = nil function on.construction() on.varChange() -- 最初に Nspire 側の変数の初期値を呼んでから var.monitor("slider1") -- その変数を監視対象にする。 end function on.varChange() slider1 = var.recall("slider1") -- 監視対象の Nspire 側変数が変化したら lua に呼ぶ。 end function on.paint(gc) gc:fillRect(0, 25, slider1, 10) end --]]