2013-06-24 49 views
0

我試圖通過js.dart與Dart使用paper.js。NoSuchMethodError與dart.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); 
      } 
    }); 
}; 
+0

快速瀏覽一下http://paper.js,似乎你的調用'js.context.paper.project.importSVG(query(「#svg」));'是正確的。你能粘貼整個錯誤嗎? –

+0

感謝您的回答。 「打破異常:NoSuchMethodError:找不到方法:'importSVG'」從js.dart拋出:1038 –

+0

很奇怪。您可以使用_chrome開發人員工具_測試您是否在JavaScript中定義了此方法?在控制檯中輸入'paper.project.importSVG'。你應該看到類似'function(node){this.activate(); return importSVG(node,true); }' –

回答

0

你的飛鏢呼叫似乎是正確的。對這個問題的評論往往表明,在javascript導入/聲明paper.project.importSVG中存在問題。

0

這很奇怪。你能告訴我你使用的是什麼版本的圖書館嗎?它應該在頂部的提交中以及paper.version變量中聲明。

相關問題