将JSON文件转换为扩展名为.js的JSONP的一行代码

时间:2015-07-13 23:40:05

标签: javascript json jsonp

尝试创建HTML5横幅(在Adobe Flash CC 2015 Canvas中)并上传到Doubleclick Studio。它会生成一个DoubleClick不允许的微小JSON文件。

这一行是整个JSON文件。它看起来像它指导图像的精灵位置。

{"images": ["images/300x250_XF_1_atlas_.png"], "frames": [[220,0,159,270],[0,213,204,191],[206,272,196,191],[0,0,218,211]]}

DoubleClick Studio不接受JSON文件(请参阅下文)。

  

JSON:不允许以.json结尾的文件。 (出于跨域原因,Studio不接受JSON文件。必须将JSON文件重写为扩展名为.js的静态JSONP文件)。   https://support.google.com/richmedia/answer/2672512<

这是加载json文件的HTML代码中的函数。

function init() {
    canvas = document.getElementById("canvas");
    images = images||{};
    ss = ss||{};

    var loader = new createjs.LoadQueue(false);
    loader.addEventListener("fileload", handleFileLoad);
    loader.addEventListener("complete", handleComplete);
    loader.loadFile({src:"images/300x250_XF_1_atlas_.json", type:"spritesheet",   id:"300x250_XF_1_atlas_"}, true);
    loader.loadManifest(lib.properties.manifest);
}

非常感谢您花时间帮助我。我是动画师,这不是我的强项。我想我创建的每个横幅都会有类似的.JSON文件输出,所以希望即使图像数量发生变化,该解决方案也适用于所有这些。

2 个答案:

答案 0 :(得分:0)

也许您可以尝试使用文本编辑器手动进行转换?

这是JSON (就是您所拥有的)

filename:300x250_XF_1_atlas_.json

{"images": ["images/300x250_XF_1_atlas_.png"], "frames": [[220,0,159,270],[0,213,204,191],[206,272,196,191],[0,0,218,211]]}

这是JSONP (只需将callback( ..... );添加到json文件中)

文件名:300x250_XF_1_atlas_.js

callback({"images": ["images/300x250_XF_1_atlas_.png"], "frames": [[220,0,159,270],[0,213,204,191],[206,272,196,191],[0,0,218,211]]});

答案 1 :(得分:0)

因此,对于未来尝试解决此问题的人来说,将Flash画布对话框中的发布设置更改为不将所有图像合并到精灵表中将删除JSON文件并使其与doubleclick兼容。