在StageGL上下文中使用过滤器和精灵的问题

时间:2018-08-30 17:12:32

标签: createjs

首先,求求我的英语。

我正在CreateJS库上使用WebGL处理某些图片。我需要在用于创建Spritsheet的jpg上应用自定义滤色器。

这是我的代码:

let bmp = new createjs.Bitmap(rscTexture);
bmp.filters = [new createjs.AlphaFilter()];
bmp.cache(0, 0, rscTexture.width, rscTexture.height, {1, useGL:"stage"});

let frames = this.generateFrames();
this.sprite = new createjs.Sprite( new createjs.SpriteSheet({
  framerate:  24,
  "images": [bmp.cacheCanvas],
  "frames":  frames,
  "animations": {
    "run": [0, frames.length - 1],
  }
}));

问题在于,这将引发下一个错误:

  

ERROR由于对象的父阶段,无法使用'stage'进行缓存   未设置,请将addChild设置到正确的阶段。

如果仍然不创建元素,如何将其首先添加到舞台中?

1 个答案:

答案 0 :(得分:2)

如果您已经存在一个StageGL实例,则可以直接传递它。 “阶段”快捷方式试图弄清楚;但是,有时您需要具体说明,直接传递引用是唯一的解决方案。

bmp.cache(0, 0, rscTexture.width, rscTexture.height, 1, { useGL: myStage });

具体和完整的文档可以在这里找到: https://createjs.com/docs/easeljs/classes/BitmapCache.html#method_define