0

我正在做一个项目,该项目需要我通过 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(); 
});

出于某种原因,此代码导致空白画布。奇怪的是,如果我new Ship(...)在几秒钟后调用我的开发控制台,光栅在画布上渲染得很好,就像它应该的那样。我还注意到,当我查看 的值时Game.ship.elem.__canvas,我看到一个大小为 32、32 的画布元素,即使 DOM 中不存在这样的画布。

我假设这与时间有关,但我似乎无法弄清楚我必须做什么才能使其工作,除了使用 setTimeout 在几秒钟后创建栅格的令人难以置信的混乱方法$(document).ready()是叫。

有人对这里发生的事情有任何想法,或者有什么可以引导我走向正确方向的事情吗?

4

1 回答 1

2

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

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

于 2012-05-14T01:22:08.220 回答