0

我正在尝试在我的 Windows 8 应用程序中实现免费绘图,但我不断收到此错误:

“0x800a01bd - JavaScript 运行时错误:对象不支持此操作文件:fabric.js,行:12857,列:7”

将图像添加到画布等所有工作都与演示中一样,但在 VS 中,当我将鼠标悬停在此代码中的“织物”上时,fabric.Shadow 未显示为列表中的选项:

setShadow: function(options) {
      return this.set('shadow', new fabric.Shadow(options));
},

有谁知道为什么这对我不起作用?我从 www.fabricjs.com 创建了一个 api 版本,并包含了所有模块。我从免费绘图演示 ( http://fabricjs.com/freedrawing/ ) 中复制了代码,但没有任何乐趣。我还尝试删除对创建阴影的任何引用,因为我不打算使用该功能,但它仍然崩溃。谢谢

4

1 回答 1

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,谢谢!

于 2013-08-08T17:55:58.647 回答