Javascript HTML5画布图像在chrome中不可见

Javascript HTML5画布图像在chrome中不可见,javascript,css,html,canvas,Javascript,Css,Html,Canvas,我正在使用HTML5画布并将两个图像放在那里,但我面临的一个问题是,一个图像在chrome中加载并可见,而另一个图像仅在mozilla中可见,但在刷新之后。我不知道为什么会这样,因为我是新来的 var canvas=document.getElementById('canvas'); var context=canvas.getContext('2d'); var x=0; var y=0; var宽度=900; var高度=700; var imageObj=新图像(); imageObj.

我正在使用HTML5画布并将两个图像放在那里,但我面临的一个问题是,一个图像在chrome中加载并可见,而另一个图像仅在mozilla中可见,但在刷新之后。我不知道为什么会这样,因为我是新来的

var canvas=document.getElementById('canvas');
var context=canvas.getContext('2d');
var x=0;
var y=0;
var宽度=900;
var高度=700;
var imageObj=新图像();
imageObj.onload=函数(){
drawImage(imageObj,x,y,宽度,高度);
};
imageObj.src=http://img13.deviantart.net/1550/i/2011/353/4/2/mobile_game_background_by_disnie-d4jmr8r.jpg';
var startImageObj=新图像();
startImageObj.onload=函数(){
drawImage(startImageObj,(canvas.width startImageObj.width)/2,(canvas.height startImageObj.height)/2)
};
startImageObj.src=http://assets.halfbrick.com/yc/v3/images/button-play.png';
由于事件是异步的,请确保在
基本映像的
onload处理程序中设置了
播放按钮

var canvas=document.getElementById('canvas');
var context=canvas.getContext('2d');
var x=0;
var y=0;
var宽度=900;
var高度=700;
var imageObj=新图像();
imageObj.onload=函数(){
drawImage(imageObj,x,y,宽度,高度);
var startImageObj=新图像();
startImageObj.onload=函数(){
context.drawImage(startImageObj,(canvas.width-startImageObj.width)/2,(canvas.height-startImageObj.height)/2)
};
startImageObj.src=https://d30y9cdsu7xlg0.cloudfront.net/png/5670-200.png';
};
imageObj.src=http://img13.deviantart.net/1550/i/2011/353/4/2/mobile_game_background_by_disnie-d4jmr8r.jpg';
由于事件是异步的,请确保在
基本映像的
onload处理程序中设置了
播放按钮

var canvas=document.getElementById('canvas');
var context=canvas.getContext('2d');
var x=0;
var y=0;
var宽度=900;
var高度=700;
var imageObj=新图像();
imageObj.onload=函数(){
drawImage(imageObj,x,y,宽度,高度);
var startImageObj=新图像();
startImageObj.onload=函数(){
context.drawImage(startImageObj,(canvas.width-startImageObj.width)/2,(canvas.height-startImageObj.height)/2)
};
startImageObj.src=https://d30y9cdsu7xlg0.cloudfront.net/png/5670-200.png';
};
imageObj.src=http://img13.deviantart.net/1550/i/2011/353/4/2/mobile_game_background_by_disnie-d4jmr8r.jpg';

@Rayon的答案是正确的,在当前的实现中,您无法知道将首先加载哪个映像,但在我看来,将所有内容包装在同一个回调中是错误的,因为您必须等待加载第一个映像,然后再触发下一个映像的加载,whcih将产生最后一幅图像的闪烁幻影

相反,创建一个预加载函数,当两个图像都已加载时,该函数将触发绘图函数

这样做的好处是以后可以更轻松地调用绘图函数,还可以使代码更清晰:

/*预加载程序
投入:
包含要加载的图像URL的数组,
加载所有图像后调用的回调函数
产出:
以相同顺序包含所有图像元素的数组具有提供的URL
*/
函数预加载程序(ImageURL、回调){
var toLoad=imageurl.length,
toReturn=[],
减量=函数(){

如果(-toLoad@Rayon的答案是正确的,因为在当前的实现中,您无法知道将首先加载哪个图像,但在我看来,将所有内容包装在同一个回调中是错误的,因为您必须等待加载第一个图像,然后再触发加载下一个图像,这将产生最后一个ima的闪烁幻影通用电气

相反,创建一个预加载函数,当两个图像都已加载时,该函数将触发绘图函数

这样做的好处是以后可以更轻松地调用绘图函数,还可以使代码更清晰:

/*预加载程序
投入:
包含要加载的图像URL的数组,
加载所有图像后调用的回调函数
产出:
以相同顺序包含所有图像元素的数组具有提供的URL
*/
函数预加载程序(ImageURL、回调){
var toLoad=imageurl.length,
toReturn=[],
减量=函数(){

如果(-toLoad console中的任何错误?确保
http://assets.halfbrick.com/yc/v3/images/button-play.png
未被您的网络提供商阻止..我在
网络选项卡中的
200网络广播访问被拒绝
状态代码
@Rayon否,我没有收到任何错误,图像未被阻止,因为我能够打开这些图像。这些图像仅用于演示目的,我正在系统中使用本地图像。@Rayon确实刷新页面,图像将消失。在firefox中,一切正常吗?控制台中有错误吗?确保
http://assets.halfbrick.com/yc/v3/images/button-play.png
未被您的网络提供商阻止..我在
N中获得了
200网络广播访问被拒绝
状态代码“网络”选项卡
@Rayon否,我没有收到任何错误,图像也没有被阻止,因为我可以打开这些图像。这些图像只是为了演示,我在我的系统中使用本地图像。@Rayon确实刷新了页面,图像将消失。在firefox中一切正常