Javascript HTML5污染的画布可能无法导出

Javascript HTML5污染的画布可能无法导出,javascript,html,createjs,Javascript,Html,Createjs,我正在尝试将CreateJS与spritesheet动画结合使用,这完全是一场噩梦 每次我尝试使用图像时,都会收到关于画布污染的投诉。我尝试了一个公共Web服务器,本地文件标签加载,以及使用grunt的本地服务器。目前,我使用的是grunt devserver(它的设计完全是CORS开放的) 它报告说图像加载得非常好,所以我尝试使用它 this.localSpriteSheet = new createjs.SpriteSheet({ images: [contentManage

我正在尝试将CreateJS与spritesheet动画结合使用,这完全是一场噩梦

每次我尝试使用图像时,都会收到关于画布污染的投诉。我尝试了一个公共Web服务器,本地文件标签加载,以及使用grunt的本地服务器。目前,我使用的是grunt devserver(它的设计完全是CORS开放的)

它报告说图像加载得非常好,所以我尝试使用它

this.localSpriteSheet = new createjs.SpriteSheet({
        images: [contentManager.getResult(hero.imageName)], //image to use
        frames: hero.frames,
        animations: hero.animations
}),
这样可以很好地加载图像,然后我尝试加入一些反转帧

createjs.SpriteSheetUtils.addFlippedFrames(this.localSpriteSheet, true, false, false),
也就是说,无论文件位于何处,它都会抛出这个愚蠢的错误

Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
这是我加载图像的代码:

contentManager.loadManifest([{
    id: "warrior",
    src: "http://localhost:8888/img/warrior.png"
}]);

任何帮助都将不胜感激,因为这完全是一场噩梦。

从与图像相同的域加载包含画布的HTML页面。我想这是有意义的。谢谢你,我不确定你做了什么。如果从其他域提供图像,则必须是CORS。否则它们会被污染。一种解决方案是使用自己的服务器作为代理,另一种是寻找CORS代理服务。取决于需要使用等。是的,您可以在提供图像的服务器上使用CORS。如果执行此操作,则必须在画布中使用的图像上设置crossOrigin标志。PreloJS对此有支持。
contentManager.loadManifest([{
    id: "warrior",
    src: "http://localhost:8888/img/warrior.png"
}]);