Я работаю над проектом, который требует от меня управлять бумагой через javascript, а не с использованием обычного письма-протокола. Я в настоящее время застрял из-за странного поведения, которое я не могу понять. Вот упрощенная версия кода я бегуСтранное поведение при попытке управления Paper.js с javascript напрямую
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(...)
через консоль dev через несколько секунд, растровое изображение будет просто отлично на холсте, как и должно быть. Я также заметил, что когда я смотрю на значение Game.ship.elem.__canvas
, я вижу элемент canvas размером 32, 32, хотя в DOM такого холста нет.
Я предполагаю, что это имеет какое-то отношение к срокам, но я не могу понять, что мне нужно сделать, чтобы заставить его работать, кроме невероятно грязного подхода к использованию setTimeout для создания растра a через несколько секунд после вызова $(document).ready()
.
У кого-нибудь есть идеи относительно того, что здесь происходит, или что-то, что может привести меня в правильном направлении?
Я столкнулся с тем же, когда работал с бумажными растрами. Я закончил использование [imagesloaded] (https://github.com/desandro/imagesloaded). – bmacnaughton