javascript – 检查游戏循环之前是否加载了图像
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 检查游戏循环之前是否加载了图像,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1579字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 检查游戏循环之前是否加载了图像](/upload/InfoBanner/zyjiaocheng/710/c8bf07facd3c4261afd102706e075cc8.jpg)
到目前为止,我的程序按照我想要的方式工作.这很好用:
// Player object
var player = {
x: 10,
y: 10,
draw: function () {
ctx.drawImage(playerImg, 0, 0);
...
>我应该检查是否先加载了playerImg,即使它到目前为止工作正常吗?
>此外,检查的最佳方法是什么.我正在考虑将所有图像放在一个数组中.然后使用onLoad函数进行检查.如果它们都已加载,那么我将开始游戏循环.这是一个好主意吗?
谢谢
解决方法:
图像加载如何工作
您需要检查图像是否已加载,因为图像加载是异步的.您有时可能会遇到代码无效的情况.这主要是因为您的图像存在于缓存中,并且浏览器能够在调用drawImage之前足够快地加载它,或者图像存在于本地磁盘上.
但是,新用户需要先下载数据,并且您不希望首次使用的用户遇到错误,例如由于未完成加载而未显示图像.
因为它是异步的,所以当图像加载在后台进行时,代码将继续执行.这可能导致您的代码在图像加载完成之前执行.因此处理图像加载很重要
处理多个图像
您可以先加载所有图像(或者您需要开始的图像),然后使用数组定义它们:
var imageURLs = [url1, url2, url3, ...],
images = [],
count = imageURLs.length;
然后迭代并创建图像元素:
for(var i = 0; i < count; i++) {
/// create a new image element
var img = new Image();
/// element is valid so we can push that to stack
images.push(img);
/// set handler and url
img.onload = onl oadHandler;
img.src = imageURLs[i];
/// if image is cached IE (surprise!) may not trigger onl oad
if (img.complete) onl oadHandler().bind(img);
}
并在回调函数中执行库存计数:
function onl oadHandler() {
/// optionally: "this" contains current image just loaded
count--;
if (count === 0) callbackDone();
}
您的回调是您接下来要执行的代码.您的图像将以与imageURL相同的顺序位于阵列图像中.
对于生产,您还应该包含一个onerror处理程序,以防出现问题.
内容总结
以上是互联网集市为您收集整理的javascript – 检查游戏循环之前是否加载了图像全部内容,希望文章能够帮你解决javascript – 检查游戏循环之前是否加载了图像所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。