首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PIXI.js SpriteSheet - Uncaught :无法设置未定义的属性(设置“_parentID”)

PIXI.js SpriteSheet - Uncaught :无法设置未定义的属性(设置“_parentID”)
EN

Stack Overflow用户
提问于 2021-12-13 18:55:23
回答 1查看 726关注 0票数 0

我试图使用PIXI.js在网络上创建一个动画。我需要用PIXI.Loader.Shared.add()加载一个spritesheet,然后与PIXI.AnimatedSprite()一起使用它来创建动画。

这是我的带bug的代码

代码语言:javascript
运行
复制
PIXI.Loader.Shared.add(`assets/0.json`).load(sceneLoad);

function sceneLoad() {
  const scene = new PIXI.Container();
  const s = PIXI.Loader.Shared.resources["assets/0.json"].spritesheet.textures;

  let eyes = [s['Eyes.png'], s['ClosedEyes.png']]; 
  eyes = new PIXI.AnimatedSprite(eyes);
  scene.addChild(eyes); // Where the error occurs
}

,这是我的错误

代码语言:javascript
运行
复制
Uncaught TypeError: Cannot set properties of undefined (setting '_parentID')
    at e.addChild (pixi.min.js:8)
    at sceneLoad (scenes.js:40)
    at t.dispatch (pixi.min.js:8)
    at e._onComplete (pixi.min.js:8)
    at pixi.min.js:8
    at s (pixi.min.js:8)
    at e.use (pixi.min.js:8)
    at pixi.min.js:8
    at pixi.min.js:8

我用同样的错误检查了线程。但这是一种不同的PIXI.js方法。我用同样的错误检查了线程。但答案没有得到解释,而是关于一种不同的PIXI.js方法。

这是我在其JSON中使用的喷漆单

代码语言:javascript
运行
复制
{"frames": {
"ClosedEyes.png":
{
    "frame": {"x":500,"y":0,"w":500,"h":700},
    "rotated": false,
    "trimmed": false,
    "spriteSourceSize": {"x":0,"y":0,"w":500,"h":700},
    "sourceSize": {"w":500,"h":700}
},
"Eyes.png":
{
    "frame": {"x":0,"y":700,"w":500,"h":700},
    "rotated": false,
    "trimmed": false,
    "spriteSourceSize": {"x":0,"y":0,"w":500,"h":700},
    "sourceSize": {"w":500,"h":700}
}},
"meta": {
    "app": "https://www.codeandweb.com/texturepacker",
    "version": "1.0",
    "image": "1.png",
    "format": "RGBA8888",
    "size": {"w":1373,"h":1482},
    "scale": "1",
    "smartupdate": "$TexturePacker:SmartUpdate:f87f23b00c6d9d315163af7aa5edde4e:c4a362a6939011366e8ebf2df4b161e1:f91cade670d3cd0da3efe30dce0ef325$"
}
}
EN

回答 1

Stack Overflow用户

发布于 2021-12-13 18:55:23

当我再次查看PIXI.js 文档 on PIXI.SpriteSheet时,我看到了以下示例:

代码语言:javascript
运行
复制
new PIXI.Sprite(sheet.textures["image.png"]);

他们从下面的对象创建了一个PIXI.Sprite() 对象

代码语言:javascript
运行
复制
PIXI.Loader.Shared.resources["assets/0.json"].spritesheet.textures

然而,我并没有在上面的代码中。因此,我修改了代码以创建PIXI.Sprite()对象。以下是工作代码:

代码语言:javascript
运行
复制
PIXI.Loader.Shared.add(`assets/0.json`).load(sceneLoad);

function sceneLoad() {
  const scene = new PIXI.Container();
  const s = PIXI.Loader.Shared.resources["assets/0.json"].spritesheet.textures;

  let eyes = [new PIXI.Sprite(s['Eyes.png']), new PIXI.Sprite(s['ClosedEyes.png'])]; 
  eyes = new PIXI.AnimatedSprite(eyes);
  scene.addChild(eyes); // Where the error occurs
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70339595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档