单击循环停止动画(问题)
Cycling Stop Animation by Clicking (Issue)
我遇到的问题与用户单击动画的最后一帧时动画冻结有关。我做了一个JSFiddle。当动画处于最后一帧时单击,它将冻结。当用户点击时,我尝试了一些方法来阻止这样的输入。
if(active === false){
active = true;
}
但无济于事。这可能是一些简单的事情,我只是不知道。
试试这个-
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var activeIMG;
var active = false;
var frame = 7;
window.images = {
c0: new Image(),
c1: new Image(),
c2: new Image(),
c3: new Image(),
c4: new Image(),
c5: new Image(),
c6: new Image()
};
images.c0.src = 'http://i.imgur.com/Tw3iDG6.png'; //Normal
images.c1.src = 'http://i.imgur.com/nFS1YYw.png'; //Start
images.c2.src = 'http://i.imgur.com/f8BYubj.png'; //Boom
images.c3.src = 'http://i.imgur.com/96N0hLn.png'; //Boom Smoke
images.c4.src = 'http://i.imgur.com/1iACNo8.png'; //Thick Smoke
images.c5.src = 'http://i.imgur.com/eZxuXtC.png'; //Lighter Smoke
images.c6.src = 'http://i.imgur.com/ooZJYa9.png'; //Rounding Smoke
activeIMG = images.c0;
$('body').mousedown(function (event) {
var chords = ("X: " + event.pageX + "Y: " + event.pageY);
if (frame > 6) {
active = true;
frame = 0;
}
});
setInterval(function change() {
if (active) {
activeIMG = window.images["c" + frame++];
//console.log(activeIMG)
active= frame <= 6;
} else {
activeIMG = window.images["c0"];
}
}, 150);
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height)
ctx.drawImage(activeIMG, 0, 0);
requestAnimationFrame(draw);
}
draw();
这是演示http://jsfiddle.net/vikrant47/vh9mgwk8/2/
您一点击第6帧就将active
设置为false
,因此它现在是"可重新启动"的,您希望在绘制第6帧/或第7帧(重复第1帧)开始时设置它。
在案例6上设置断点并逐步通过。
这就是我实现这一目标的方式,看,我在你的代码中做了一些更改:
var test = function(event){
var chords = ("X: " + event.pageX + "Y: " + event.pageY);
//alert(chords);
active = true;
};
$('body').bind('click',test);//binding click event
$('body').unbind('click');//unbinding it when animation is going on for preventing unwanted click
/* made some changes in case 6 also, binding click event once more and set frame to 0 */
case 6:
activeIMG = images.c6;
active = false;
frame=0;//most important to make frame from start again
$('body').bind('click',test);//binding again
break;
演示
相关文章:
- 剑道网格jQuery动画()问题
- 在EaselJS中设置精灵表动画时出现问题
- 关于使用Animate.css向和项添加和删除动画类的问题
- Chart.js 2.1.2条形图动画问题
- 动画、计时和运行循环等问题
- 如何在 jquery 中克服此问题以获得动画悬停效果
- jQuery 动画处理最大宽度溢出问题
- HTML5 画布动画问题
- 旋转木马动画事件问题
- 使用JSTween的动画气泡问题
- SVG模式动画和背景淡入问题
- 循环播放Raphael动画,没有fps问题
- Three.js-渲染问题-动画正在动摇
- Chrome动画CSS3三维立方体与悬停状态问题
- CSS3 动画和 JavaScript 类切换后的动画出现问题
- 轮播猫头鹰 2:字幕动画时遇到问题
- jQuery将问题动画化-动态选择方向
- jQuery幻灯片和停止问题:动画元素随着鼠标的快速移动而冻结
- jQuery,CSS问题-动画
- CSS Animation -play-state问题:动画恢复时跳转回初始帧