1

请任何人都可以帮助我为 cytoscape js lib 创建渲染器扩展。

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

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

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

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

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);

但它抛出了这个错误:

无法注册myRendererrenderer因为clientFunctions原型中已经存在并且不能被覆盖

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

4

1 回答 1

1

以画布渲染器为例:https ://github.com/cytoscape/cytoscape.js/tree/master/src/extensions/renderer/canvas

于 2017-03-27T16:44:53.477 回答