CreateJS-图像位图始终不显示

大卫·阿奇博尔德(David Archibald)

我怀疑,答案在于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一秒钟再运行一次是不够的。

注意:我不认为这是该问题的重复,因为没有答案,因为它已经存在了一年,他们无法提供一些详细信息,并且注释中提供的唯一解决方案失败了。

兰尼

调用时未加载图像stage.update即使预加载它,如果将字符串路径传递给Bitmap,它仍然需要花费一些时间来初始化,但是即使只是几毫秒,您也要求阶段在准备好之前进行绘制。

解决方案是在图像完成后绘制,并确保使用图像而不是字符串路径。

要修复您的代码,请执行以下操作:

let stage = new createjs.Stage('easel'),
bitmap = new createjs.Bitmap('http://www.skrenta.com/images/stackoverflow.jpg');
stage.addChild(bitmap);
bitmap.image.onload = function() {
    stage.update();
}

要修复您的预加载代码,请执行以下操作:

queue.on('complete', draw, this)
queue.load(imageUrl)

function draw() {
  let bitmap = new createjs.Bitmap(queue.getResult("imgId")); // Reference
  stage.addChild(bitmap);
  stage.update();
}

这是一个更完整的答案:easeljs不显示位图

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用AngularJS和CreateJS预加载图像

来自分类Dev

iOS中的CreateJS EaselJS绘制位图视频

来自分类Dev

Using CreateJS to apply an alpha tween to a drawn line

来自分类Dev

easeljs不显示位图

来自分类Dev

使用canvas和createjs / easeljs查看区域

来自分类Dev

无法使用CreateJS预加载和显示SVG

来自分类Dev

如何使用CreateJS绘制弯曲的箭头?

来自分类Dev

CreateJS是否支持收缩缩放?

来自分类Dev

createjs.Shadow alpha

来自分类Dev

Angular和CreateJS找不到舞台元素

来自分类Dev

如何在Createjs EaselJS中将多个图像作为一个精灵导入?

来自分类Dev

带矩阵的CreateJS径向渐变

来自分类Dev

使用createjs / easyljs调整图像大小

来自分类Dev

使用Createjs和Chartjs

来自分类Dev

使用ES6模块的CreateJS

来自分类Dev

Ionic + CreateJs高CPU和内存

来自分类Dev

Createjs-Tweenjs不适用于位图

来自分类Dev

如何使用createjs创建图像映射

来自分类Dev

createjs位图图像旋转使图像在chrome中呈锯齿状

来自分类Dev

禁用多点触控createjs

来自分类Dev

如何使用createjs定位MovieClip

来自分类Dev

使用CreateJS移除点击形状

来自分类Dev

使用createjs / easyljs调整图像大小

来自分类Dev

使用preloadjs加载图像时如何更改createjs中的位图图像?

来自分类Dev

createjs 计算圆形扇区的边界

来自分类Dev

createjs/preloadjs:什么是“标签加载”?

来自分类Dev

带有 HTML 按钮的 CreateJS

来自分类Dev

createJS 坐标与画布不匹配

来自分类Dev

位图图像不显示