2016-06-21 9 views
0

Also, wie ich es gelesen habe here, sollte TWEEN.update (#) den Rahmen der Animation auf # rendern? Wenn ich TWEEN.update (100) starte, sollte ich jedes Mal, wenn ich TWEEN.update (100) starte, den Frame auf 100 setzen.TWEEN.js TWEEN.update (Zeit) verhält sich nicht wie dokumentiert

Das Problem, das ich habe, ist, dass diese Update-Funktion scheint 100 als früher oder früher jedes Mal, wenn ich es ausführen. Der Frame, der zum ersten Mal mit 100 animiert wird, sieht also korrekt aus, aber wenn ich ihn erneut starte, sieht es aus wie irgendwo um Frame 60 herum, das nächste Mal sieht es ungefähr so ​​aus wie 20 usw. bis das animierte Element am Anfang steht Tween und wartet eine Weile mit zunehmender Länge, je länger ich die Umgebung betreibe.

Ist schon jemand anderes in diese Sache geraten? Ich verwende eine Variable, die nicht direkt mit dem Lauf der Zeit IRL gebunden ist, so meine belebtes Funktion sieht wie folgt aus:

animate(){ 
timeStep += variableControllingSpeed; 
TWEEN.update(timeStep); 
} 

Ich habe Benutzeroberfläche, die diese Geschwindigkeit variable Griffe ändern.

Irgendwelche Ideen?

Antwort

0

Behoben, wenn Sie die Animationsframes manuell mit .update (#) festlegen, stellen Sie sicher, dass ein Parameter in die einzelnen .start() - Funktionen Ihres individuellen Tweens übergeben wird. Andernfalls wird die verstrichene Variable des Tweens negativ.

In meinem Fall starte ich die Tweens jedes Mal, wenn ich den Satz von Tweens, die ich ausführen möchte, umschalte. Wenn Sie also die .start() - Funktion ausführen, verwendet sie entweder den Startwert oder die Window.performance .now(), also je länger es lief, desto größer war der Abstand zwischen window.performance.now() und dem Wert, mit dem ich die Tween-Ketten gestartet hatte.