crowds/js/slideshow/Scratch.js

58 lines
986 B
JavaScript
Raw Normal View History

2018-04-02 17:43:20 +00:00
function Scratch(){
var self = this;
self.canvas = $("#scratch");
self.ctx = self.canvas.getContext("2d");
// 711 x 400
var w = 711;
var h = 400;
2018-04-02 17:43:20 +00:00
self.scratchIn = function(){
2018-04-20 18:47:58 +00:00
// SOUND!
SOUNDS.scratch_in.play();
// anim
2018-04-02 17:43:20 +00:00
self.startUpdateLoop(false, function(){
self.canvas.style.display = "none";
2018-04-02 17:43:20 +00:00
});
2018-04-20 18:47:58 +00:00
2018-04-02 17:43:20 +00:00
};
self.scratchOut = function(){
2018-04-20 18:47:58 +00:00
// SOUND!
SOUNDS.scratch_in.play();
// anim
self.canvas.style.display = "block";
2018-04-02 17:43:20 +00:00
self.startUpdateLoop(true);
2018-04-20 18:47:58 +00:00
2018-04-02 17:43:20 +00:00
};
self.startUpdateLoop = function(out, callback){
var frame = 0;
var xOffset = out ? 0 : w;
2018-04-02 17:43:20 +00:00
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
2018-04-02 17:43:20 +00:00
if(frame>19){
unsubscribe(handle);
if(callback) callback();
return;
}
frame+=0.5;
2018-04-02 17:43:20 +00:00
});
};
}