typescript - Laste en spritesheet i Pixijs fungerer ikke
Jeg prøver å laste inn et spritesheet i pixijs i henhold til den offisielle dokumentasjonen: http://pixijs.download/release/docs/PIXI.Spritesheet.html
Følgende er koden min:
PIXI.Loader.shared.add('sheet', require('../assets/spritesheet.json')).load(spriteSetup)
function spriteSetup() {
let sheet = PIXI.Loader.shared.resources['sheet'].spritesheet;
console.log(sheet)
}
Når jeg prøver å logge verdien av 'sheet', er den udefinert. Så jeg prøvde å logge verdien av PIXI.Loader.shared.resources['sheet'], som ikke er udefinert, men snarere følgende:
{
"_onLoadBinding": null,
"_elementTimer": 0,
"_flags": 2,
"name": "sheet",
"url": "sheet",
"extension": "sheet",
"data": "<!DOCTYPE html>\n<html lang=\"\">\n<head>\n <meta charset=\"utf-8\">\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n <meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\">\n <link rel=\"icon\" href=\"/favicon.ico\">\n <link href=\"https://cdn.jsdelivr.net/npm/[email /dist/css/bootstrap.min.css\" rel=\"stylesheet\"\n integrity=\"sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3\" crossorigin=\"anonymous\">\n <title>medease</title>\n<link href=\"/js/app.js\" rel=\"preload\" as=\"script\"><link href=\"/js/chunk-vendors.js\" rel=\"preload\" as=\"script\"></head>\n<body>\n<noscript>\n <strong>We're sorry but medease doesn't work properly without JavaScript enabled.\n Please enable it to continue.</strong>\n</noscript>\n<div id=\"app\"></div>\n<!-- built files will be auto injected -->\n<script type=\"text/javascript\" src=\"/js/chunk-vendors.js\"></script><script type=\"text/javascript\" src=\"/js/app.js\"></script></body>\n</html>\n",
"crossOrigin": "",
"timeout": 0,
"loadType": 1,
"xhrType": "text",
"metadata": {},
"error": null,
"xhr": {},
"children": [],
"type": 6,
"progressChunk": 100,
"onStart": {},
"onProgress": {},
"onComplete": {
"_tail": null,
"_head": null
},
"onAfterMiddleware": {}
}
Dette er ganske forvirrende for meg, da det ser ut til at det laster index.html-filen i stedet for json-filen jeg prøver å laste (se datafeltet).
Noen hadde et veldig lignende problem her: https://github.com/pixijs/pixijs/issues/5965 Men jeg kjører fortsatt koden min gjennom en webserver, og det fungerer fortsatt ikke for meg.
Å skrive ut require('../assets/spritesheet.json') skriver ut JSON-filen helt fint. Kanskje dette er et litt nybegynnerspørsmål, men jeg sitter helt fast. Hvis det hjelper, bruker jeg Vue 3 og satte opp dette prosjektet med vue-cli, men jeg ser ikke hvordan det skulle være relevant.
Svar #1
Jeg hadde det samme problemet. Løsningen er å flytte spriteSheet.json sammen med spriteSheet.png fra assets til public-mappen.
Og sett banen images/spriteSheet.json (i public/images/spriteSheet.json) i henhold til den offisielle dokumentasjonen.