Как скопировать кинетическую сцену на другой холст

Я пишу приложение, где на странице могут быть сотни полотен. Вместо того, чтобы иметь накладные расходы на отдельную сцену для каждого холста, я решил иметь редактора, который содержит сцену. Как только редактирование завершено, он должен скопировать содержимое сцены на другой холст.

Stage предлагает toImage и toDataURL для захвата контента, однако, согласно этому тесту производительности, оба эти метода будут очень медленными по сравнению с context.drawImage.

Увидеть:http://jsperf.com/copying-a-canvas-element

Поскольку на сцене я использую только один слой, а слой содержит холст, я подумал, что смогу сделать это:

desticationCtx.drawImage(layer.getContext().canvas, 0,0);

к сожалению, это нене дает никаких результатов (хотя работает)

Так как на стадии есть bufferCanvas, я также попробовал:

destinationCtx.drawImage(this.stage.bufferCanvas.element,0,0);

Опять нет результатов, хотя я могу видеть содержание на холсте сцены на странице.

Однако, если я покопаюсь на своей странице, чтобы добраться до реального холста, созданного и использованного kineticjs:

destinationCtx.drawImage(document.getElementById('mydiv').children[0].children[0],0,0);

Я получаю результаты. Как правильно скопировать содержимое сцены kineticjs на другой холст?

Ответы на вопрос(2)

Ваш ответ на вопрос