Mercurial > hg > webaudioevaluationtool
changeset 358:9c4118f24790 Dev_main
EXPERIMENTAL! New APE drag interface. Testing for OSX
author | Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk> |
---|---|
date | Fri, 27 Nov 2015 10:23:47 +0000 |
parents | 9823ee8c823e |
children | ff76f21403cb |
files | ape.js |
diffstat | 1 files changed, 29 insertions(+), 45 deletions(-) [+] |
line wrap: on
line diff
--- a/ape.js Fri Nov 27 09:27:33 2015 +0000 +++ b/ape.js Fri Nov 27 10:23:47 2015 +0000 @@ -7,6 +7,8 @@ // Once this is loaded and parsed, begin execution loadInterface(); +var clicking = -1; + function loadInterface() { // Get the dimensions of the screen available to the page @@ -368,9 +370,6 @@ audioEngineContext.loopPlayback = loopPlayback; // Create AudioEngine bindings for playback - audioEngineContext.selectedTrack = function(id) { - console.log('Deprecated'); - }; currentTestHolder = document.createElement('audioHolder'); currentTestHolder.id = audioHolderObject.id; @@ -405,6 +404,33 @@ audioObject.metric.initialised(convSliderPosToRate(audioObject.interfaceDOM.trackSliderObj)); }); + + $('.track-slider').mousedown(function() { + clicking = this.getAttribute('trackIndex'); + }); + + $('#slider').mousemove(function(event) { + event.preventDefault(); + if (clicking == -1) + { + return; + } + $("#track-slider-"+clicking).css("left",event.clientX + "px"); + }); + + $(document).mouseup(function(event){ + if (clicking >= 0) + { + var l = $("#track-slider-"+clicking).css("left"); + var time = audioEngineContext.timer.getTestTime(); + var rate = convSliderPosToRate(document.getElementById("track-slider-"+clicking)); + audioEngineContext.audioObjects[clicking].metric.moved(time,rate); + console.log("slider "+clicking+" moved to "+rate+' ('+time+')'); + } + clicking = -1; + }); + + if (commentShow) { interfaceContext.showCommentBoxes(feedbackHolder,true); } @@ -452,18 +478,6 @@ this.trackSliderObj.setAttribute('trackIndex',audioObject.id); this.trackSliderObj.innerHTML = '<span>'+audioObject.id+'</span>'; - this.trackSliderObj.draggable = true; - this.trackSliderObj.ondragend = dragEnd; - - this.trackSliderObj.ondragstart = function(event){ - event.dataTransfer.setData('Text',null); - }; - - this.trackSliderObj.ondrop = function(event) - { - if(event.stopPropagation) {event.stopPropagation();} - return false; - }; // Onclick, switch playback to that track this.trackSliderObj.onclick = function(event) { @@ -508,36 +522,6 @@ }; } -function dragEnd(ev) { - // Function call when a div has been dropped - var slider = document.getElementById('slider'); - var marginSize = Number(slider.attributes['marginsize'].value); - var w = slider.style.width; - w = Number(w.substr(0,w.length-2)); - var x - if (navigator.platform.substr(0,3) == "Win") - { - x = ev.screenX; - x -= Math.abs(window.screenX); - x = x % window.outerWidth; - } else - x = ev.clientX; - - if (x >= marginSize && x < w+marginSize) { - this.style.left = (x)+'px'; - } else { - if (x<marginSize) { - this.style.left = marginSize+'px'; - } else { - this.style.left = (w+marginSize) + 'px'; - } - } - var time = audioEngineContext.timer.getTestTime(); - var id = Number(ev.currentTarget.getAttribute('trackindex')); - audioEngineContext.audioObjects[id].metric.moved(time,convSliderPosToRate(ev.currentTarget)); - console.log('slider '+id+' moved to '+convSliderPosToRate(ev.currentTarget)+' ('+time+')'); -} - function buttonSubmitClick() { var checks = testState.currentStateMap[testState.currentIndex].interfaces[0].options;