好的,這可能是非常基本的東西,我不明白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秒大約1圈的速度向右移動。
所以他們都是數字類型,跟蹤顯示他們大致相同的價值。爲什麼一個能夠移動MC而另一個不能?
感謝您的任何建議!
這聽起來像你得到一些int轉換錯誤。你可以嘗試更改'私人變量clock_speed:Number = 5;'到'私人變量clock_speed:Number = 5.0;'? –