Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.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控制Paper.js时的奇怪行为_Javascript_Canvas_Paperjs - Fatal编程技术网

试图直接从javascript控制Paper.js时的奇怪行为

试图直接从javascript控制Paper.js时的奇怪行为,javascript,canvas,paperjs,Javascript,Canvas,Paperjs,我正在从事一个项目,该项目要求我通过javascript控制纸张,而不是使用常规的paperscript路径。我现在被困在一个奇怪的行为,我似乎无法理解。下面是我正在运行的代码的简化版本 paper.install(window); $(document).ready(function() { paper.setup("canvas"); Game.ship = new Ship(view.center, 1) // Essentially calls new Raster("

我正在从事一个项目,该项目要求我通过javascript控制纸张,而不是使用常规的paperscript路径。我现在被困在一个奇怪的行为,我似乎无法理解。下面是我正在运行的代码的简化版本

paper.install(window);
$(document).ready(function() { 
    paper.setup("canvas");
    Game.ship = new Ship(view.center, 1) // Essentially calls new Raster("imgid"); and positions it
    view.draw(); 
});
出于某种原因,此代码将生成一个空白画布。奇怪的是,如果我在几秒钟后在我的开发控制台中调用
newship(…)
,光栅就会在画布上呈现得很好,这是应该的。我还注意到,当我查看
Game.ship.elem.\uu canvas
的值时,我看到一个canvas元素的大小为32,32,即使DOM中不存在这样的canvas

我假设这与时间有关,但我似乎不知道我必须做些什么才能让它工作,除了调用
$(document).ready()
几秒钟后使用setTimeout创建光栅这种令人难以置信的混乱方法


有人知道这里发生了什么事,或者有什么东西能把我引向正确的方向吗?

事实上,我自己设法弄明白了。对于遇到此问题的任何人来说,问题实际上是因为在图像完成加载之前调用了
ready()
函数


因此,
new Raster()
调用正在将不存在的图像加载到画布中,导致结果为空

我在使用纸锉时也遇到了同样的问题。我最终使用了。