与dart.js的NoSuchMethodError

时间:2013-06-24 12:52:17

标签: dart dart-js-interop

我正在尝试通过js.dart使用带有Dart的paper.js。

很多似乎都有用,但我还需要paper.js中的方法importSVG。当我尝试使用js.context.paper.project.importSVG(query("#svg"));访问它时,我得到NoSuchMethodError。这是因为该方法被注入到项目中 - 参见下面的paper.js代码。

如何从Dart访问importSVG方法?

/* paper.js */
new function() {
    function importSVG(node, clearDefs) {
            // ...
    }

    Item.inject(/** @lends Item# */{
            /**
             * Converts the passed node node into a Paper.js item and adds it to the
             * children of this item.
             *
             * @param {SVGSVGElement} node the SVG DOM node to convert
             * @return {Item} the converted Paper.js item
             */
            importSVG: function(node) {
                    return this.addChild(importSVG(node, true));
            }
    });

    Project.inject(/** @lends Project# */{
            /**
             * Converts the passed node node into a Paper.js item and adds it to the
             * active layer of this project.
             *
             * @param {SVGSVGElement} node the SVG DOM node to convert
             * @return {Item} the converted Paper.js item
             */
            importSVG: function(node) {
                    this.activate();
                    return importSVG(node, true);
            }
    });
};

2 个答案:

答案 0 :(得分:0)

你的Dart电话似乎是正确的。对该问题的评论往往表明paper.project.importSVG的javascript导入/声明存在问题。

答案 1 :(得分:0)

这很奇怪。你能告诉我你使用的是什么版本的库吗?它应该在顶部的通信中以及paper.version变量中说明这一点。