我很难找到92图像PNG文件进行测试,所以我不得不做一个较短的。这是一个工作示例:http://jsfiddle.net/Yhrbb/
例子中的代码是这样的:
(function() {
var total = 92;
var play_on_click = 72;
var played = 0;
$('#fly').click(function() {
if (played >= total) {
return;
}
var current_play;
if (play_on_click > (total - played)) {
current_play = total - played;
}
else {
current_play = play_on_click;
}
played += current_play;
$('#bird').sprite({fps: 12, no_of_frames: 3, play_frames: current_play});
});
})();
我们能适应它为你工作,像这样:
(function() {
var total = 92;
var play_on_click = 72;
var played = 0;
$('#stacheguy2').click(function() {
if (played >= total) {
return;
}
var current_play;
if (play_on_click > (total - played)) {
current_play = total - played;
}
else {
current_play = play_on_click;
}
played += current_play;
$(this).sprite({fps: 30, no_of_frames: 92, play_frames: current_play});
});
})();
注意,一旦我们到达我们只是在if (played >= total)
上忽略了return
的额外点击。您可以在此时重置played
或执行任何您想要的操作。如果这不起作用,您是否介意发布您的PNG文件或用于jsfiddle的类似长文件。
配置帧的数量与阵列
如果你想打每帧的配置数量的点击,你可以这样做:http://jsfiddle.net/dNYks/
(function() {
var play_on_click = [32, 21, 10, 20];
var play_index = 0;
$('#fly').click(function() {
var current_play = play_on_click[play_index];
play_index++;
if (play_index > play_on_click.length-1) {
play_index = 0;
}
$('#bird').sprite({fps: 12, no_of_frames: 3, play_frames: current_play});
});
})();
我们可以适应这个代码以匹配您的标记像这样:
(function() {
var play_on_click = [32, 21, 10, 20];
var play_index = 0;
$('#stacheguy2').click(function() {
var current_play = play_on_click[play_index];
play_index++;
if (play_index > play_on_click.length-1) {
play_index = 0;
}
$(this).sprite(fps: 30, no_of_frames: 92, play_frames: current_play});
});
})();
谢谢!是的,它绝对奏效。不好意思,因为我不熟悉这一点,但我必须提出另一个问题。我需要写什么(以及如何将其添加到此现有代码中)以使对象再次可点击?而且,更具体地说,我正在寻找能够在每次新的点击时做更多的动画,如果可能的话。 –
第三次点击时你想发生什么(所以第一次播放72帧,第二次播放休息)?你想重复72的模式,休息,72,休息,72休息等? – Cymen
我希望能够添加更多的帧到我的精灵表中,以便下次单击将执行我的精灵表的下一帧。例如...第一次点击=帧1 - 70,第二次点击=帧71-92,第三次点击=帧93-103,等等。 –