setExpressionの注意点

円運動をsetExpressionで実現する例。仕組みは、
(1)div1のXY座標をsetExpression()で設定する
(2)setinterval()メソッドで一定時間ごとにupdate()を呼び出す
(3)update()では、変数timeの値を増加させ、document.recalc(true)ですべてのダイナミックプロパティの値を更新する
となる。1つの注意点は、setInterval()の引数2番目には変数を使えなかったこと。 ソースのコメント部分の4行を、その下の2行に代わりに有効にすると、 スクリプトは動かない。どうやら、引数2番目には変数や配列は使えないようだ。
以下、ヘッダ部分
<SCRIPT LANGUAGE="JavaScript">

var startX = 300
var startY = 300
var radiusX = 100
var radiusY = 100
var freq = 0.05

var time = 0
function update()	{
	time = time + freq
	document.recalc(true)
	div2.innerText = time	//デバッグ用にtimeの数値を表示しているだけ
}

function initCircle()	{
//	var pointX = startX + Math.cos(time)*radiusX
//	var pointY = startY + Math.sin(time)*radiusY
//	div1.style.setExpression("pixelLeft",pointX)
//	div1.style.setExpression("pixelTop",pointY)

	↑4行を有効にして↓2行を無効にするとスクリプトは動かない

	div1.style.setExpression("pixelLeft","startX + Math.cos(time)*radiusX")
	div1.style.setExpression("pixelTop","startY + Math.sin(time)*radiusY")

	setInterval("update()",100)
}

</SCRIPT>