Mercurial > hg > webaudioevaluationtool
diff ape.js @ 675:7e73d1cdcff8
Refined metric collection. Rating now correct. Slider scale now fully bounded
author | Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk> |
---|---|
date | Mon, 13 Apr 2015 10:40:37 +0100 |
parents | 436db2f29f73 |
children | e604ee22185b |
line wrap: on
line diff
--- a/ape.js Mon Apr 13 09:58:16 2015 +0100 +++ b/ape.js Mon Apr 13 10:40:37 2015 +0100 @@ -521,13 +521,16 @@ function dragEnd(ev) { // Function call when a div has been dropped var slider = document.getElementById('slider'); - if (ev.x >= 50 && ev.x < window.innerWidth-50) { - this.style.left = (ev.x)+'px'; + var w = slider.style.width; + w = Number(w.substr(0,w.length-2)); + var x = ev.x; + if (x >= 42 && x < w+42) { + this.style.left = (x)+'px'; } else { - if (ev.x<50) { - this.style.left = '50px'; + if (x<42) { + this.style.left = '42px'; } else { - this.style.left = window.innerWidth-50 + 'px'; + this.style.left = (w+42) + 'px'; } } audioEngineContext.metric.sliderMoved(); @@ -604,6 +607,17 @@ } } +function convSliderPosToRate(id) +{ + var w = document.getElementById('slider').style.width; + var maxPix = w.substr(0,w.length-2); + var slider = document.getElementsByClassName('track-slider')[id]; + var pix = slider.style.left; + pix = pix.substr(0,pix.length-2); + var rate = (pix-42)/maxPix; + return rate; +} + function pageXMLSave(testId) { // Saves a specific test page @@ -620,17 +634,13 @@ xmlDoc.appendChild(metric); var trackSliderObjects = document.getElementsByClassName('track-slider'); var commentObjects = document.getElementsByClassName('comment-div'); - var rateMin = 50; - var rateMax = window.innerWidth-50; for (var i=0; i<trackSliderObjects.length; i++) { var audioElement = document.createElement('audioElement'); audioElement.id = currentTrackOrder[i].attributes['id'].value; audioElement.url = currentTrackOrder[i].attributes['url'].value; - var value = document.createElement("value"); - var rate = Number(trackSliderObjects[i].style.left.substr(0,trackSliderObjects[i].style.left.length-2)); - rate = (rate-rateMin)/rateMax; - value.innerHTML = Math.floor(rate*100); + var value = document.createElement('value'); + value.innerHTML = convSliderPosToRate(i); var comment = document.createElement("comment"); var question = document.createElement("question"); var response = document.createElement("response");