好的,这可能是我对ActionScript不理解的基础知识,但我似乎在这方面一无所获。
我有一些代码,应该可以平滑地处理ENTER_FRAME循环中的动画:
private var m_lastTime:Number;
private var clock_speed:Number = 5;
private function frameLoop(evt:Event):void
{
var currTime:int = getTimer();
var deltaTime:Number = ( currTime - this.m_lastTime ) * 0.001;
this.m_lastTime = currTime;
//trace(deltaTime.toString() + "," + (deltaTime * clock_speed).toString());
// why you no work?
var n:Number = clock_speed * deltaTime;
trace(n);
mcClockHand.rotation += .18;// Number(deltaTime * clock_speed);
因此,可以看到,我正在计算帧之间的时间差,并将其乘以速度常数。我得出一个数字值并将其追踪到输出窗口。它在0.14和0.19之间波动,平均为0.18。
如果我使用该值偏移时钟指针MC的旋转,则永远不会移动。如果像上面显示的那样使用常数0.18,则大约每30秒旋转一次。
因此,它们都是数字类型,并且跟踪显示它们的值大致相同。为什么一个能够移动MC而另一个不能呢?
感谢任何建议!
private var clock_speed:Number = 5;
更改为private var clock_speed:Number = 5.0;
吗? - Jonatan Hedborg