Я работал над проектом, в котором я хотел иметь возможность вращать игровой объект, проводя пальцем во время работы на планшете / мобильном устройстве. Насколько я знаю, в режиме Createjs Touch еще не существует специального метода, позволяющего выполнять смахивание, но я решил что-то вроде хака ...
var active = false;
var firstX, runningX, dx;
var star = this.star;
createjs.Touch.enable(stage);
stage.preventSelection = false;
this.stage.addEventListener("stagemousedown", initActive);
this.stage.addEventListener("stagemousemove", swiping);
this.stage.addEventListener("stagemouseup", endActive);
function initActive(){
this.active = true;
this.firstX = stage.mouseX;
}
function swiping(){
if(this.active){
this.runningX = stage.mouseX;
this.dx = this.firstX - this.runningX;
star.rotation = this.dx;
}
}
function endActive(){
this.active = false;
}
Воткод в действии ... http://www.e -nimation.com / HTML5 / swipeCode / Swiping.html Я изначально включил функцию тиков ...
createjs.Ticker.addEventListener("tick", rotating);
function rotating(){
console.log("star rotation = "+star.rotation);
if(this.active) star.rotation = this.dx;
}
, но это не такКажется, это необходимо.
Я надеюсь, что кто-то найдет это полезным. Не стесняйтесь вносить изменения, изменять, комментировать, выбрасывать окна и т. Д.
ПЕРЕСМОТР:
Я заметил, что с помощью приведенного выше кода вращающийся объект (в данном случае звезда) отскакивает назадс поворотом нуля каждый раз, когда вызывается функция stagemousedown. Вот исправленный код ...
var active = false;
var firstX, runningX, dx, startRotation;
var star = this.star;
createjs.Touch.enable(stage);
stage.preventSelection = false;
this.stage.addEventListener("stagemousedown", initActive);
this.stage.addEventListener("stagemousemove", swiping);
this.stage.addEventListener("stagemouseup", endActive);
function initActive(){
this.active = true;
this.firstX = stage.mouseX;
this.startRotation = star.rotation;
}
function swiping(){
if(this.active){
this.runningX = stage.mouseX;
this.dx = this.firstX - this.runningX;
star.rotation = this.dx + this.startRotation;
}
}
function endActive(){
this.active = false;
}
Он учитывает новое вращение вращающегося объекта, а не сбрасывает его в ноль.