javascript - 如何使用 Pixijs 获取加载的 Sprite 表资源中定义的图像

标签 javascript canvas pixi.js

使用 Pixijs 我可以加载资源如下:

var assetsToLoader = ["sprite-sheet-1.json", "sprite-sheet-2.json"];
loader = new PIXI.AssetLoader(assetsToLoader);
loader.onComplete = onAssetsLoaded
loader.load();
function onAssetsLoaded () {
   // getAssets here  
}

在 sprite-sheet-1.json

{"frames": {

    "image1.png":
    {
        "frame": {"x":0,"y":0,"w":40,"h":40},
        "rotated": false,
        "trimmed": false,
        "spriteSourceSize": {"x":0,"y":0,"w":40,"h":40},
        "sourceSize": {"w":40,"h":40}
    },
    "image2.png":
    {
        "frame": {"x":40,"y":0,"w":40,"h":40},
        "rotated": false,
        "trimmed": false,
        "spriteSourceSize": {"x":0,"y":0,"w":40,"h":40},
        "sourceSize": {"w":40,"h":40}
    }},
    "meta": {
        "app": "http://www.texturepacker.com",
        "version": "1.0",
        "image": "../img/sprite-sheet-1.png.png",
        "format": "RGBA8888",
        "size": {"w":279,"h":40},
        "scale": "1",
        "smartupdate": "$TexturePacker:SmartUpdate:9e3e5afd01ea8e418afabfbdcd724485$",
        "extraMeta": "this is Extra"
    }
}

如何以编程方式获取 Sprite 表中定义的图像列表?

最佳答案

PIXI 将所有 Sprite 存储在全局对象 PIXI.TextureCache 中。

function onAssetsLoaded () {
   // getAssets here  
   console.log(PIXI.TextureCache);
}

因此,要获得单个纹理,您可以执行类似的操作

var texture1 = PIXI.TextureCache["image1.png"];

不过,您通常不需要这样做,因为添加 Sprite 非常简单

var sprite = PIXI.Sprite.fromFrame("image1.png");

关于javascript - 如何使用 Pixijs 获取加载的 Sprite 表资源中定义的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29419068/

相关文章:

javascript - 如何为 django 表单自定义 html

javascript - JavaScript 中的自定义线性同余生成器

javascript - 为什么我的球不是圆弧形的?

javascript - 如何使用 Pixi.js 将数据传递给处理程序

javascript - _.bind 下划线中的源代码

javascript - 如果值的长度达到最大长度,如何在 div 和 tirm/slice 中添加复选框的值

javascript - 返回值显示为字符串而不是 json

javascript - 如何预览线条工具?

javascript - Canvas 获取透视点

javascript - 尽管禁用 mipmap 和半像素校正,纹理仍然出血