Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript EaselJS sprite on(“单击”)返回CORS错误_Javascript_Html_Cross Domain_Createjs_Easeljs - Fatal编程技术网

Javascript EaselJS sprite on(“单击”)返回CORS错误

Javascript EaselJS sprite on(“单击”)返回CORS错误,javascript,html,cross-domain,createjs,easeljs,Javascript,Html,Cross Domain,Createjs,Easeljs,首先,我正在做一个本地的EaselJS/CreateJS项目,只是为了测试一些sprite和鼠标的交互 我在舞台上添加了一个简单的精灵形象,我称之为enemy1: //Create the enemy sprite and add it to the stage var enemy_image = new Image(); enemy_image .src = "enemy_sprite.png"; var enemy1 = new createjs.Bitmap(enemy_image);

首先,我正在做一个本地的EaselJS/CreateJS项目,只是为了测试一些sprite和鼠标的交互

我在舞台上添加了一个简单的精灵形象,我称之为enemy1:

//Create the enemy sprite and add it to the stage
var enemy_image = new Image();
enemy_image .src = "enemy_sprite.png";
var enemy1 = new createjs.Bitmap(enemy_image);

enemy1 .x = 0;
enemy1 .y = 0;

stage.addChild(enemy1);
使用此代码,我希望在用户每次单击时显示警报:

enemy1.on("click", function() 
{
     alert("Clicked!");
});
相反,每次单击都会出现跨域错误,如下所示:


如果问题是我在本地工作或与跨域请求相关-为什么图片在舞台上加载并显示得很好,而错误只在我单击它时显示?

Canvas非常乐意允许您向其添加跨源数据,但在没有CORS的情况下这样做会污染画布

当您试图在画布被污染时从画布读取数据时,会出现错误


您正在使用的库可能正在尝试读取数据,作为其代码的一部分,以确定您单击的内容。

Canvas非常乐意允许您向其中添加跨源数据,但在没有CORS的情况下这样做会污染画布

当您试图在画布被污染时从画布读取数据时,会出现错误

您正在使用的库可能正在尝试读取数据,作为确定您单击内容的代码的一部分。

在尝试使用web上托管的图像时,我遇到了一个问题。以下是我根据该答案编写的函数,作为解决方法:

function loadImg(uri) {
  var image = document.createElement("img")
  image.crossOrigin = "Anonymous"
  image.src = uri 
  return image
}
然后做:

var enemy1 = new createjs.Bitmap(loadImg("http://example.com/enemy_sprite.png"))
在尝试使用web上托管的图像时,我遇到了一个问题。以下是我根据该答案编写的函数,作为解决方法:

function loadImg(uri) {
  var image = document.createElement("img")
  image.crossOrigin = "Anonymous"
  image.src = uri 
  return image
}
然后做:

var enemy1 = new createjs.Bitmap(loadImg("http://example.com/enemy_sprite.png"))

所以,如果你想给一个EaselJS精灵添加一个点击处理程序,你会怎么做?我的代码怎么了?我相信这几乎是教科书——假设它对精灵有效!谢谢你的信息。我会安装一个web服务器进行开发,我无论如何都会这么做,因为直接从本地文件系统进行测试太痛苦了地点如果你在mac上,有非常简单的方法来启动web服务器,只需打开终端,cd到你的项目目录并键入:python-m SimpleHTTPServer 8000。你现在可以在localhost:8000上访问你的项目。作为替代,你可以使用php-s localhost:8000,它也会有同样的效果。如果你需要,这些命令应该可以在Windows上运行安装了python或php。顺便说一句,我可以确认问题是您使用的是本地文件://。我在web服务器上尝试了您的代码,它成功了:感谢提示。我自己在web服务器上尝试过,它工作得很好。因为错误是在事件期间显示的,而不是在图像请求期间显示的,所以我没有将其与web服务器关联。因此,我如果你想给一个EaselJS精灵添加一个点击处理程序,你会怎么做?我的代码有什么问题吗?我相信这是一本教科书——假设它对精灵有效!谢谢你的信息。我会安装一个web服务器进行开发,我无论如何都会这么做,因为直接从本地文件系统进行测试在太多地方太痛苦了如果你在mac上,有非常简单的方法来启动web服务器,只需打开终端,cd到你的项目目录并键入:python-m SimpleHTTPServer 8000。你现在可以在localhost:8000上访问你的项目。或者,你可以使用php-s localhost:8000,它也会有同样的效果。如果你有需要,这些命令应该可以在Windows上运行python或php installed.BTW,我可以确认问题是您正在使用本地文件://。我在web服务器上尝试了您的代码,它成功了:感谢提示。我自己在web服务器上尝试过,它工作正常。由于错误是在事件期间显示的,而不是在图像请求期间显示的,因此我没有将其与web服务器关联。类似的回答:@Lanny抱歉没有尝试偷你的雷霆,谢谢你的帮助。很棒的产品。一点也不-你的方法很好-我已经写了另一个,还有更多的细节:干杯。类似的回答:@Lanny抱歉没有尝试偷你的雷霆,谢谢你的帮助。很棒的产品。一点也不-你的方法很好我已经写了另一个,还有更多的细节:干杯。