我試圖通過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);
}
});
};
快速瀏覽一下http://paper.js,似乎你的調用'js.context.paper.project.importSVG(query(「#svg」));'是正確的。你能粘貼整個錯誤嗎? –
感謝您的回答。 「打破異常:NoSuchMethodError:找不到方法:'importSVG'」從js.dart拋出:1038 –
很奇怪。您可以使用_chrome開發人員工具_測試您是否在JavaScript中定義了此方法?在控制檯中輸入'paper.project.importSVG'。你應該看到類似'function(node){this.activate(); return importSVG(node,true); }' –