crowds/js/slideshow/Scratch.js

58 lines
986 B
JavaScript

function Scratch(){
var self = this;
self.canvas = $("#scratch");
self.ctx = self.canvas.getContext("2d");
// 711 x 400
var w = 711;
var h = 400;
self.scratchIn = function(){
// SOUND!
SOUNDS.scratch_in.play();
// anim
self.startUpdateLoop(false, function(){
self.canvas.style.display = "none";
});
};
self.scratchOut = function(){
// SOUND!
SOUNDS.scratch_in.play();
// anim
self.canvas.style.display = "block";
self.startUpdateLoop(true);
};
self.startUpdateLoop = function(out, callback){
var frame = 0;
var xOffset = out ? 0 : w;
var handle = subscribe("update", function(){
var yOffset = Math.floor(frame)*h;
// Redraw canvas
self.ctx.clearRect(0, 0, self.canvas.width, self.canvas.height);
self.ctx.drawImage(
IMAGES.scratch,
xOffset, yOffset, w, h,
0, 0, w, h);
// Staaaahhhhhp
if(frame>19){
unsubscribe(handle);
if(callback) callback();
return;
}
frame+=0.5;
});
};
}