我花了很多时间使用 KineticJS 构建一个装扮游戏,但我似乎陷入了最后的障碍。
我创建了一个“快照”按钮,我想让我的用户将画布打印到窗口或选项卡上。这是我的代码片段:
Camera.prototype.takeSnapshot = function()
{
var backgroundLayer = this.controller.view.getBackgroundLayer();
var backgroundContext = backgroundLayer.getContext();
var manikinLayer = this.controller.view.getManikinLayer();
var manikinCanvas = manikinLayer.getCanvas();
//combine background and 'manikin' layers
backgroundContext.drawImage(manikinCanvas,0 ,0);
//open data URL in new window
var manikinImageUrl = backgroundLayer.getCanvas().toDataURL('image/png');
window.open(manikinImageUrl);
};
现在我确定你已经猜到了,这适用于 FF、Chrome、Safari for Win,但不适用于 IE 或 IOS Safari。做了一些研究后,如果 IE 完全不支持此功能,我相信所有版本?
我只是在寻找专家来确认这是否属实。
也有人可以告诉我如何在打印出来之前将 backgroundLayer 和 ManikinLayer 融合在一起吗?我在第 5 行代码中收到错误消息“无法将值转换为:HTMLImageElement、HTMLCanvasElement、HTMLVideoElement”。
任何帮助都非常感谢,因为在付出了这么多努力之后,我快要放弃这个项目了!