我在一个对象中定义了几个 kineticJS 圆圈,并创建并显示了其中几个对象。我想要的是根据用户从显示的圆圈中选择的对象生成一个 XML 对象。
为此,我尝试在单击特定圆圈时设置在对象中定义的变量值,并以object.property
某种方式调用它。但是,这不起作用。
以下是我用于这项工作的一些代码:
function Graph(i, j, refRel, refRelTxt) {
subNodes = seventeen + eighteen + nineteen;
graphNode = "<" + refRelTxt + ">" + subNodes + "<" + refRelTxt + ">";
var layer = new Kinetic.Layer({
width: 200,
height: 100,
x: (stage.getWidth() / 2.5) + i,
y: (stage.getHeight() / 2.5) + j
});
var circle19 = new Kinetic.Circle({
x: 10,
y: layer.getHeight() / 2,
radius: cradius,
fill: '#CCCCCC'
});
//++++++++++++++++++++++++++++++++++++++++++++++++++
var circle18 = new Kinetic.Circle({
x: 10 + n,
y: (layer.getHeight() / 2) - m,
radius: cradius,
fill: '#CCCCCC'
});
var circle17 = new Kinetic.Circle({
x: 10 + n,
y: (layer.getHeight() / 2) + m,
radius: cradius,
fill: '#CCCCCC'
});
//============Mouse in/out operations
circle17.on('click', function (evt) {
this.setFill('#00FF00');
layer.draw();
seventeen = "<node>seventeen<node>";
});
circle18.on('click', function (evt) {
this.setFill('#00FF00');
layer.draw();
eighteen = "<node>eighteen<node>";
});
circle19.on('click', function (evt) {
this.setFill('#00FF00');
layer.draw();
nineteen = "<node>nineteen<node>";;
});
// add the shape to the layer
layer.add(circle19);
layer.add(circle18);
layer.add(circle17);
stage.add(layer);
}
创建一些图形对象,如下所示:
var graph19 = new Graph(-(4*hdist), (0*vdist),"circle19","nineteen");
graph19.graphNode
然后根据用户单击的圆圈调用该值以获取 xml。但是,graph19.graphNode
不会动态设置这些值。我知道我在这里做错了我无法弄清楚的事情。当我设置全局变量并执行此操作时,它会起作用。我想要的是从创建的各种 Graph 对象中提取 xml。