我怀疑答案将在PreloadJs中,但是,我已经在我的代码中删除了对它的修改以简化它。这是最重要的部分:
let stage = new createjs.Stage('easel'),
bitmap = new createjs.Bitmap('http://www.skrenta.com/images/stackoverflow.jpg');
stage.addChild(bitmap);
stage.update();
所以现在的问题是,这是你第一次运行我的代码时得到的结果:
没有什么不对。
但是,第一次访问时,图像还没有被缓存,也没有显示出来。当您硬重置页面(ctrl + r
在 Windows 上)时,也会发生同样的事情。这显然是一件大事,因为您第一次访问该页面时,它不会有图像。这是我尝试过的:
PreloadJs,这很可能是解决方案,但是到目前为止我的代码不起作用。
这是我当前的
PreloadJS
代码:queue.on('complete', draw, this) queue.load(imageUrl) function draw() { let bitmap = new createjs.Bitmap(imageUrl); stage.addChild(bitmap); stage.update(); }
触发我的代码
onload
。问题仍然存在。- 延迟之类的
setTimeout
。除了非常骇人听闻之外,即使有很大的延迟,它也只能在一定比例的时间内修复它。 - 像这样的答案。这适用于硬重置,但是当我清除缓存时加载时间过长,基本上破坏了修复第一次加载的整个想法。
因此,基本上,虽然其中一些解决方案在某些时候有效,但有些是骇人听闻的,而且都只能在一定比例或更少的时间内有效。什么是最好的解决方案?
一件事是当我做某事时,例如调整页面大小,图像会显示出来。我无法在我的示例代码中重新创建它。我相信这会发生,因为当我最初运行时stage.update
它还没有准备好显示,所以它没有。再次简单地在stage.update
一秒钟后再次运行是不够的。
注意:我不认为这是这个问题的重复,因为没有答案,它已经有一年了,他们无法提供一些细节,并且评论中提供的唯一解决方案失败了。