我正在尝试在我的Windows 8应用程序中实现免费绘图,但我不断收到此错误:
“0x800a01bd - JavaScript运行时错误:对象不支持此操作 File:fabric.js,Line:12857,Column:7“
将图像添加到画布等都可以像在演示中一样工作,但在VS中,当我在此代码中悬停在“fabric”上时,fabric.Shadow不会在列表中显示为选项:
setShadow: function(options) {
return this.set('shadow', new fabric.Shadow(options));
},
有谁知道为什么这对我不起作用?我从www.fabricjs.com创建了一个api版本,包括所有模块。我已经复制了免费绘图演示(http://fabricjs.com/freedrawing/)中的代码,但没有任何乐趣。我也尝试删除任何创建阴影的引用,因为我不打算使用该功能,但它仍然崩溃。谢谢
答案 0 :(得分:0)
谢谢!它现在对我有用。我确实必须更改演示提供的JavaScript以使其工作。作为对未来可能希望在Windows 8中使用它的任何人的参考,jquery代码需要更加严格,以便更新选择器。
提供代码:
var $ = function(id){return document.getElementById(id)};
var drawingModeEl = $('drawing-mode'),
drawingOptionsEl = $('drawing-mode-options'),
drawingColorEl = $('drawing-color'),
drawingShadowColorEl = $('drawing-shadow-color'),
drawingLineWidthEl = $('drawing-line-width'),
drawingShadowWidth = $('drawing-shadow-width'),
drawingShadowOffset = $('drawing-shadow-offset'),
clearEl = $('clear-canvas');
我取消了上面的内容,每次需要时都使用标准的jquery选择器$('#drawing-mode')。然后事件提供为:
drawingModeEl.onclick = function() {}
drawingColorEl.onchange = function() {}
所以我把上面改为:
$('#drawing-mode').on('click', function () {});
$('#drawing-color').change(function (){});
现在一切都像在演示中那样工作。喜欢这个API,谢谢!