• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Script hängt sich auf wegen wiederholter Ausführung

Didakt

New member
Hallo Forum,

bin neu hier und schreibe gerade eine Funktion die ein drehendes Rad(als Auswahl) verwalten soll.

Prinzip:
Per Touch dreht man das Rad - je nach Winkel soll das Script erkennen welche Auswahl aktiv ist - das versuche ich mit Propeller.js - welche die aktuelle angle in meine CallbackFunction zurückgibt.
Allerdings führt sich das Script natürlich alle paar Millisekunden aus wenn der if -Fall aktiv ist. Dadurch hängt sich das Ganze auf. Gibt es einen besseren Ansatz, dass das Script nur einmal ausgeführt wird.

PHP:
 new Propeller(document.getElementById('spinwheel'), {inertia: 0.5, onRotate: function(){
                          
                          checkAngleandColor(this.angle);
                          
                          
                          }});
                          
                          function checkAngleandColor(angle){
                          
                          if(angle > 260){
                        
                        
                          $( "#colortracker p" ).text( "Rot" );
                          
                          }
                          
                          
                          
                          
                          }

Viele Grüße
 
Die Frage ist hier: Soll die Auswahl (Position des Rades [angel]) während des Drehens ausgewertet werden, oder erst bei Stillstand?
Erkläre mal etwas genauer was du vorhast. Ansonsten gibt es ja auch noch die onDragStop-Methode.
 
Es soll beim drehen ausgewertet werden. Es ist ein Farbrad, das 42 Farben beinhaltet. Und beim drehen soll unten der Name der Farbe geändert werden beim Drehen.. und eben stehen bleiben wenn nicht gedreht wird.
 
Dann musst du dir Gradauswertung anpassen denke ich. So das deine Funktion nur ausgeführt wird, wenn der Zielgerichtet sich ändert. Hast du dir schon mal step-Eigenschaft angeschaut? Damit kannst du die Schrittweite definieren um die das Rad sich weiter dreht.
 
Wahrscheinlich ist es der Zugriff auf die Node bzw. das Suchen danach, dass das Ganze so langsam macht:
Code:
new Propeller(
	document.getElementById('spinwheel'),
	{
		inertia: 0.5,
		onRotate: (function(){
			var textNode = $("#colortracker p");
			return function(){
				if (this.angle > 260){
					textNode.text("Rot");
				}
			}
		}())
	}
);

Du könntest auch den aktuellen Text irgendwo speichern (so wie oben textNode) und mit dem Neuen vergleichen. Nur bei einem Unterschied schreibst du dann in die Node rein.
 
An die Steps hatte ich auch gedacht, allerdings habe ich keine Möglichkeit gefunden abzufragen welcher Step gerade aktiv ist. Oder eine Cllbackfunktion auszurufen.
 
Zurück
Oben