我有一组图像是动画中的帧,如:frame-1.jpg, frame-2.jpg
,我有大约400幅图像。使用jQuery预加载一组图像
我想要做的是在动画开始之前预先加载这400张图片。
通常预加载图像时,我使用以下命令:
var images = [
'img/nav-one-selected.png',
'img/nav-two-selected.png',
'img/nav-three-selected.png',
'img/nav-four-selected.png'
];
$(images).each(function() {
var image = $('<img />').attr('src', this);
});
但在这种情况下,在var上市图像是不可行的,而且我还希望,一旦图像必须断火开始动画全部被加载。
到目前为止,我有以下几点:
$spinner_currentFrame = 1;
$numFrames = 400;
function preloadImages() {
$($images).each(function() {
var image = $('<img />').attr('src', this);
});
startAnimation();
}
function startAnimation() {
$spinner_loadingAnim = setInterval(function() {
UpdateSpinner();
}, 140);
}
function UpdateSpinner() {
$spinner_currentFrame = $spinner_currentFrame + 1;
if($spinner_currentFrame > $numFrames) {
$spinner_currentFrame = 1;
}
console.log($spinner_currentFrame);
$('#spinner').css("background-image", "url(frame-" + $spinner_currentFrame + ".jpg)");
}
$(document).ready(function() {
preloadImages();
});
所以这个计划是我预先加载从1到400,然后一旦这样完成了,然后开始播放动画图像。我如何构建$图像变种?
我想过这样的:
$images = [];
$frame = 1;
$numFrames = 400;
$($frame).each(function() {
$frame = $frame + 1;
if($frame <= $numFrames) {
$images =+ 'frame-' + $frame + '.jpg';
}
});
但我不知道怎么一)有效,这是和b)如何做一次所有图像都成功加载回调。
当transfering这么多的文件(400+),你应该开始使用像https://github.com/jAndreas/Supply – jAndy
仍需填充列表是什么的问题是问的技术考虑:) – Cameron