Hey gang. Stumped sur quelque chose.Problème de rotation de l'image avec MOUSE_MOVE
J'ai un disque que je tourne avec la souris avec event.MOUSE_MOVE, comme une molette sur certains équipements audio. Tout fonctionne presque comme prévu, mais le problème que je rencontre est que le disque saute toujours au point où l'utilisateur clique sur le disque. J'ai besoin du point sur le disque sur lequel l'utilisateur clique pour rester sous la souris pendant que l'utilisateur tourne le disque mais je n'arrive pas à trouver le bon calcul pour y arriver. Voici le code que je utilise:
var xd = (_knob.x - _stageRef.stage.mouseX);
var yd = (_knob.y - _stageRef.stage.mouseY);
var radAngle = Math.atan2(yd, xd);
_knob.rotation = int(radAngle * 360/(Math.PI * 2) - 90);
_knob est un cercle vectoriel enveloppé dans un MovieClip, avec le cercle centré sur le point de repérage du MovieClip. _stageRef représente l'étape principale.
Toute aide serait géniale. J'ai parcouru l'interweb et ne peux rien trouver.
Thx!
Je vois où vous allez là-bas, mais il ne semble pas fonctionner. L'angle ne doit-il pas être reconverti en radians pour être utilisé contre la propriété de rotation? Cette ligne semble manquer de: _knob.rotation + = newAngle - _mouseAngle; J'ai essayé d'implémenter votre suggestion mais elle ondule actuellement en avant et en arrière plutôt que de tourner. – Ribs
Vous ne pouvez pas avoir une fonction void qui retourne un int. Signification: function getMouseAngle(): void doit être une fonction getMouseAngle(): Number. J'ai modifié votre réponse pour correspondre à cela. – SimplyZ
j'ai vu cela sur sa réponse et l'ai changé dans mes tests. n'est pas venu à moi pour éditer sa réponse: P – Ribs