97 lines
2.4 KiB
JavaScript
97 lines
2.4 KiB
JavaScript
|
soundManager.setup({
|
||
|
preferFlash: true,
|
||
|
flashVersion: 9,
|
||
|
url: '../../swf/',
|
||
|
useHighPerformance: true,
|
||
|
wmode: 'transparent',
|
||
|
debugMode: false
|
||
|
});
|
||
|
|
||
|
var points = [];
|
||
|
var o = null;
|
||
|
var lastX = 0;
|
||
|
var lastY = 0;
|
||
|
var threshhold = 4;
|
||
|
var threshMax = 32;
|
||
|
var noise = null;
|
||
|
var screenX = 0;
|
||
|
|
||
|
function doPaint(e) {
|
||
|
var x = (e||event).clientX;
|
||
|
var y = (e||event).clientY;
|
||
|
var diff = Math.max(Math.abs(x-lastX),Math.abs(y-lastY));
|
||
|
if (diff>threshhold) {
|
||
|
lastX = x;
|
||
|
lastY = y;
|
||
|
points.push(new Point(x,y,Math.min(diff/(32),3)));
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
function stopPaint() {
|
||
|
document.onmousemove = null;
|
||
|
document.onmouseup = null;
|
||
|
// soundManager.play('up');
|
||
|
}
|
||
|
|
||
|
function startPaint(e) {
|
||
|
// soundManager.play('down');
|
||
|
document.onmousemove = doPaint;
|
||
|
document.onmouseup = stopPaint;
|
||
|
lastX = (e||event).clientX;
|
||
|
lastY = (e||event).clientY;
|
||
|
screenX = (window.innerWidth?window.innerWidth:document.documentElement.clientWidth||document.body.clientWidth);
|
||
|
e?e.stopPropagation():event.returnValue = false;
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
function initPoints() {
|
||
|
o = document.createElement('img');
|
||
|
o.src = 'image/point.png';
|
||
|
o.className = 'point';
|
||
|
document.onmousedown = startPaint;
|
||
|
document.onmouseup = stopPaint;
|
||
|
}
|
||
|
|
||
|
function Point(x,y,scale) {
|
||
|
var self = this;
|
||
|
this.data = {
|
||
|
x: x,
|
||
|
y: y,
|
||
|
scale: scale,
|
||
|
scalePX: parseInt(32*scale)
|
||
|
}
|
||
|
this.o = o.cloneNode(false);
|
||
|
this.o.style.left = (x-(this.data.scalePX/2))+'px';
|
||
|
this.o.style.top = (y-(this.data.scalePX/2))+'px';
|
||
|
this.o.style.width = this.o.style.height = this.data.scalePX+'px';
|
||
|
var screenX2 = parseInt(screenX/2);
|
||
|
noise.play({volume:parseInt(Math.min(1,scale/3)*100),pan:(x<screenX2?(screenX2-x)/screenX2*-100:(x-screenX2)/screenX2*100)});
|
||
|
document.body.appendChild(this.o);
|
||
|
}
|
||
|
|
||
|
soundManager.onready(function() {
|
||
|
noise = soundManager.createSound({
|
||
|
id:'noise',
|
||
|
url:'../animation/audio/fingerplop.mp3',
|
||
|
multiShot: true,
|
||
|
autoLoad: true
|
||
|
});
|
||
|
soundManager.createSound({
|
||
|
id:'down',
|
||
|
url:'../_mp3/click-low.mp3',
|
||
|
multiShot: true,
|
||
|
autoLoad: true
|
||
|
});
|
||
|
soundManager.createSound({
|
||
|
id:'up',
|
||
|
url:'../_mp3/click-high.mp3',
|
||
|
multiShot: true,
|
||
|
autoLoad: true
|
||
|
});
|
||
|
initPoints();
|
||
|
});
|
||
|
|
||
|
soundManager.onerror = function() {
|
||
|
alert('d\'oh, something didn\'t work - SM2 failed to start.');
|
||
|
}
|