MSV FM

dot.antimicrobial@66.96.161.157: ~ $
Path : /hermes/sb_web/b2680/summitdaymedia.com/demos/rotateTest/js/
File Upload :
Current < : /hermes/sb_web/b2680/summitdaymedia.com/demos/rotateTest/js/turnable.js

AFRAME.registerComponent('turnable', {
    schema:{
        hspeed: {type: 'int', default: 1},
        vspeed: {type: 'int', default: 1}
    },

    init:function(){

        var self=this;
        var sprite = this.el;
        var cam = this.el.sceneEl.querySelector('a-camera');
        var turning = false;
        var startX, startY;
        var xtransform, ytransform;
        var currentx = 0;
        var currenty = 0;
        this.el.addEventListener('mousedown', function(evt){
            turning = true;
            cam.setAttribute('look-controls', 'enabled: false');
            //console.log('elementmousedown');
        });
        this.el.sceneEl.addEventListener('mousedown', (e) => {
            //console.log('scenemousedown');
            startX = e.clientX;
            startY = e.clientY;
        });
        this.el.sceneEl.addEventListener('mousemove', (e) => {
            if(!turning) return;
            //console.log(startX+' '+startY+' '+e.clientX+' '+e.clientY);
            
            var yr = sprite.getAttribute('rotation').y;
            //if((yr < -90 && yr > -270)||(yr>90 && yr<270)) xtransform = ((currentx - (e.clientY - startY)*self.data.vspeed/25))%360;
            xtransform = ((currentx + (e.clientY - startY)*self.data.vspeed/25))%360;
            ytransform = ((currenty + (e.clientX - startX)*self.data.hspeed/25))%360;

            sprite.setAttribute('rotation', xtransform+' '+ytransform+' 0');

        });
        this.el.sceneEl.addEventListener('mouseup', (e) => {
            turning = false;
            currentx = xtransform;
            currenty = ytransform;
            console.log(sprite.getAttribute('rotation').x+' '+sprite.getAttribute('rotation').y);
            cam.setAttribute('look-controls', 'enabled: true');
            //console.log('elementmousedown');
        });
    },
});