如何解决如何在 phaser3 中使用 base64 加载图集?
我正在制作一个可播放的 phaser3 广告,并且需要将图像和其他资产放入单个 HTML 文件中。我可以使用 textures.addBase64 加载图像,但如何使用 base64 加载图集。 另外,如果您能告诉我如何将 JSON 放入 HTML 文件中,以便我可以在加载图集时参考它。 谢谢?
解决方法
未经个人测试,但请查看this solution
private loadBase64Atlas(key: string,data: string,json: object): void {
const imageElement = new Image();
imageElement.onload = () => {
this.scene.textures.addAtlas(key,imageElement,json);
this.onAssetLoaded();
};
const spriteBlob = this.base64ToBlob(data.split(',')[1],'image/png');
imageElement.src = URL.createObjectURL(spriteBlob);
}
如果您不使用 TypeScript,请根据需要进行调整。这是base64ToBlog implementation
如果您还需要将 JSON 对象嵌入 base64,则可以在 base64 和 base64 之间来回切换:
// get the base64 string to embed in the ad and physically store it
const atlasJSON64 = btoa(JSON.stringify(atlasJSON));
[...]
const objectatlasJSON64 = JSON.parse(atob(atlasJSON64));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。