【问题标题】:PIXI remove spriteSheet Texture cachePIXI 移除 spriteSheet 纹理缓存
【发布时间】:2017-09-28 22:42:41
【问题描述】:

我已经使用 json 加载 spriteSheetFrame。

const loader = new PIXI.loaders.Loader();
loader.add('bunny', 'data/bunny.png')
      .add('spaceship', 'assets/spritesheet.json');
loader.load((loader, resources) => {

});

我想删除所有使用这个 spritesheet.json 加载的 TextureCache。

我试过了。

PIXI.Texture.removeFromCache("spaceship");
PIXI.Texture.removeTextureFromCache("spaceship");

但在 PIXI.TextureCache 中,所有 spriteFrame 的名称都包含在其中。 而且我仍然可以使用图像格式框架。使用这个。

var bgSprite2 = PIXI.Sprite.fromFrame("ship1");
bgSprite2.anchor.set(0.5, 0.5);
var pos = {x: 300, y: 200};
bgSprite2.position.set(pos.x, pos.y);
stage.addChild(bgSprite2);

我想删除 TextureCache 中 spriteFrame 的所有条目,我想加载新的一组 spriteFrame。

我这样做是因为我有两艘不同飞船的精灵动画,但两艘飞船的单个符号名称相同。

【问题讨论】:

  • 如果精灵表是相同的 json-data-wise (只是图像不同),那么如果你只是改变/交换纹理怎么样。我只是想知道为什么你有 2 个相同的并且你想删除第一个并使用第二个。

标签: javascript html html5-canvas pixi.js


【解决方案1】:

我同意 Hachi 的观点,您可以通过替换纹理而不是一遍又一遍地破坏和重新创建来获得一些性能。缓存可能是答案。

然后,您最终可以在处理完它们后调用 destroy 以确保周围没有任何东西挥之不去。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    • 2013-05-17
    • 2019-04-21
    相关资源
    最近更新 更多