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

onmousemove

Bei folgenden Code, funktioniert die linke Taste.
Aber die rechte Taste geht nicht, weil die Mausgesten des Browsers mehr Priorität auf die rechte Taste haben.
Wie kann ich die Mausgesten im meinCanvas unterbinden ?

Die mittlere Taste kann ich mit (Event.buttons === 4) ansprechen.
Aber die brauche ich für etwas anderes.

PHP:
function mouseMove(Event) {
    if (Event.buttons === 1) {
        mat4.translate(mRotationMatrix, [Event.clientX - MousePos.X, -(Event.clientY - MousePos.Y), 0.0]);
    }
    if (Event.buttons === 2) {
        mat4.rotateX(mRotationMatrix, (Event.clientY - MousePos.Y) / 200, mRotationMatrix);
        mat4.rotateY(mRotationMatrix, (Event.clientX - MousePos.X) / 200, mRotationMatrix);
    }
    MousePos.X = Event.clientX;
    MousePos.Y = Event.clientY;
}

...

    var meinCanvas = document.getElementById("WebGL-canvas");
    meinCanvas.onmousedown = mouseDown;
    meinCanvas.onmousemove = mouseMove;
 
Du solltest die Browsergesten mit Event.preventDefault(); in dieser Funktion verhindern können.

PS: Es sieht so aus, als würdest du hier viele globale Variablen verwenden... das solltest du besser nicht machen.
PPS: Deine Namenskonvention ist sehr untypisch für JS... und die Englisch-Deutsch Mischung macht's nicht besser.
 
Ich habe es in mein Scrip eingebaut, hat aber keine Wirkung.
PHP:
function mouseMove(Event) {
    Event.preventDefault();  // Hier eingefügt
    if (Event.buttons === 1) {
        mat4.translate(mRotationMatrix, [Event.clientX - MousePos.X, -(Event.clientY - MousePos.Y), 0.0]);
    }
    if (Event.buttons === 2) {
        mat4.rotateX(mRotationMatrix, (Event.clientY - MousePos.Y) / 200, mRotationMatrix);
        mat4.rotateY(mRotationMatrix, (Event.clientX - MousePos.X) / 200, mRotationMatrix);
    }
    MousePos.X = Event.clientX;
    MousePos.Y = Event.clientY;
}
Auch habe ich folgendes Sample probiert:
event.preventDefault() | jQuery API Documentation
geht auch nicht.

Es sieht so aus, als würdest du hier viele globale Variablen verwenden...
Wo soll ich die sonst hinschreiben ?
Deklariert habe ich sie am Programm-Anfang.

Deine Namenskonvention ist sehr untypisch für JS... und die Englisch-Deutsch Mischung macht's nicht besser.
Ich weis, ich sollte sie klein schreiben, wen ich mal Lust habe, werde ich es abändern.
 
Zurück
Oben