Cytoscape js创建自定义渲染器(渲染器扩展)

时间:2017-03-22 10:41:30

标签: javascript cytoscape.js cytoscape custom-renderer

请任何人帮我创建cytoscape js lib的渲染器扩展。

以下是它现在的工作方式:



let CanvasRenderer = cytoscape('renderer', 'canvas');

CanvasRenderer.prototype.drawPolygonPath = function(context, x, y, width, height, points) {
  // my implementation goes here
}




正如它在cytoscape site上所说,它是一个可扩展的库!当我在我的项目中使用typescript时,我想要这样的东西:



class MyRenderer {

    constructor() {
        
    }
}

cytoscape('renderer', 'myRenderer', MyRenderer);




此代码显然会抛出cytoscape错误,表示我没有实现某些方法......

然后我找到了一个扩展名cytoscape-css-renderer,它不适用于我的cytoscape版本(我使用的是2.7.13) 我也尝试解决类似于cytoscape-css-renderer的这个问题:



let CanvasRenderer = cytoscape('renderer', 'canvas');

class MyRenderer {

    constructor(options) {
        CanvasRenderer.call(options);
    }

}

MyRenderer.prototype = Object.create(CanvasRenderer.prototype);
MyRenderer.prototype.constructor = MyRenderer;
$.extend(PricingRenderer, CanvasRenderer);

cytoscape('renderer', 'myRenderer', MyRenderer);




但它会抛出此错误:

无法为myRenderer注册renderer,因为clientFunctions已存在于原型中且无法覆盖

所以有人可以帮我解决这个问题......谢谢!

1 个答案:

答案 0 :(得分:0)