Problème stupide. embarrassé que je n'ai pas trouvé de solution. je suis fatigué.ActionScript - Problème de logique de la souris
un carré rouge sur la scène. le déplacement de la souris vers le bas + le déplacement de la souris déplace le carré rouge vers le bas (+ y), tandis que le déplacement de la souris vers le bas et le déplacement de la souris déplace le carré rouge vers le haut (-y). ce mouvement opposé est désiré. Toutefois, au cours d'un déplacement de la souris, le carré doit commencer à se déplacer à partir de sa position y actuelle, quel que soit le nombre de dragons de souris ayant changé sa position initialisée. actuellement, le carré rouge commencera toujours à l'étape 0, puisque ma variable mouseDownOrigin est incorrecte parce que mon cerveau est endormi.
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
public class Test extends Sprite
{
private var sp:Sprite = new Sprite();
private var mouseDownOrigin:int;
public function Test()
{
sp.graphics.beginFill(0xFF0000);
sp.graphics.drawRect(0, 0, 100, 100);
sp.x = sp.y = 200;
addChild(sp);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownEventHandler);
}
private function mouseDownEventHandler(evt:MouseEvent):void
{
mouseDownOrigin = evt.stageY;
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveEventHandler);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpEventHandler);
}
private function mouseMoveEventHandler(evt:MouseEvent):void
{
sp.y = mouseDownOrigin - evt.stageY;
}
private function mouseUpEventHandler(evt:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveEventHandler);
stage.removeEventListener(MouseEvent.MOUSE_UP, mouseUpEventHandler);
}
}
}
ah oui, il y a la logique de mon cerveau avait disparu. lol. merci encore PatrickS. – TheDarkIn1978