我试图了解Finite State Machine演示的Joint Js lib v-2.2演示的源代码。我被困在function以下

function state(x, y, label) {

var cell = new joint.shapes.fsa.State({
    position: { x: x, y: y },
    size: { width: 60, height: 60 },
    attrs: { text : { text: label }}
});
graph.addCell(cell);
return cell;
};


在上面,我试图在官方文档中获取fsa.State的以下构造函数的引用,但找不到。

var cell = new joint.shapes.fsa.State({..});


任何提示如何运作。

参考链接:

https://resources.jointjs.com/demos/fsa

https://resources.jointjs.com/demos/joint/demo/fsa/src/fsa.js

最佳答案

如果您查看fsa演示示例的源代码,可以在这里找到-https://resources.jointjs.com/demos/joint/demo/fsa/index.html

您会看到,除了joinjs库及其依赖项之外,还添加了一个脚本

<script src="../../plugins/shapes/joint.shapes.fsa.js"></script>


如果您查看它的源代码,则此插件定义了fsa.State

joint.shapes.basic.Circle.define('fsa.State', {...


fsa.State不是核心jointjs库的一部分。要使用它,您必须包含此插件。

也许因为这个原因,它不是官方文档的一部分。但是您可以在GitHub https://github.com/clientIO/joint/tree/master/dist上找到源代码,其中有一个文件joint.shapes.fsa.js

阅读有关在官方文档中定义自己的形状https://resources.jointjs.com/docs/jointjs/v2.2/joint.html#dia.Cell.define的信息。

10-08 14:40