如何在actionscript中的单行算法内计算* =运算符?

时间:2012-10-22 04:17:26

标签: actionscript operators

我正在尝试将一些算法转换为另一种语言,而且我只停留在几行代码上。我正在转换的语言是actionscript并将其转换为lua。

我遇到过这一行

return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b

相同
s = s*1.525
return c/2*(t*t*((s+1)*t - s)) + b

或与

相同
newS = s*1.525
return c/2*(t*t*((newS+1)*t - s)) + b

所以一旦调用了* =,在整个函数中都会改变,所以s的每个实例都是新值,或者它只计算一次并且s保留它之前的值?

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:3)

在相同的嵌套级别上从右到左评估赋值运算符。由于您的原始陈述已将s*=1.25括在括号中,*=分配在添加1之前执行,乘以t等,因此,您的第一个变体是纠正一个。