我试图使用PIXI.js在网络上创建一个动画。我需要用PIXI.Loader.Shared.add()
加载一个spritesheet,然后与PIXI.AnimatedSprite()
一起使用它来创建动画。
这是我的带bug的代码
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
}
,这是我的错误
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中使用的喷漆单:
{"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$"
}
}
发布于 2021-12-13 18:55:23
当我再次查看PIXI.js 文档 on PIXI.SpriteSheet
时,我看到了以下示例:
new PIXI.Sprite(sheet.textures["image.png"]);
他们从下面的对象创建了一个PIXI.Sprite()
对象
PIXI.Loader.Shared.resources["assets/0.json"].spritesheet.textures
然而,我并没有在上面的代码中。因此,我修改了代码以创建PIXI.Sprite()
对象。以下是工作代码:
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
}
https://stackoverflow.com/questions/70339595
复制相似问题