微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 phaser3 中使用 base64 加载图集?

如何解决如何在 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 举报,一经查实,本站将立刻删除。