使用 jessiecode 更新 jsxgraph 对象
Using jessiecode to update jsxgraph objects
我正在尝试使用 jessiecode 更新 canvas 对象。看起来我在这里遗漏了一些东西 - fiddleboard.create('circle', [p1, 2.0],{visible:board.jc.snippet("counter < 5 || counter > 10", true, 'counter', false)});
和 board.create('text',[1,1,board.jc.snippet(counter,true,'counter',false)]);
在此 fiddle 中,圆圈的可见 属性 和 1,1 处的文本在单击按钮时不会改变。
这确实是一个挑战!这里的主要问题是不允许 JessieCode 访问 JavaScript 变量。这是设计使然:出于安全原因,必须阻止对 DOM 的访问。
这意味着,counter
必须是 JessieCode 变量。可以用board.jc.parse("code")
.
执行任意JessieCode代码
这是完整的示例,请参阅 http://jsfiddle.net/a3x5de6t/4/:
var board = JXG.JSXGraph.initBoard('jxgbox', {
axis: true
});
// Set JessieCode variable `counter`
board.jc.parse("counter = 0;");
var p1 = board.create('point', [-2.0, 2.0]);
// Create `function() {return (counter < 5 || counter > 10) ? true: false; }`
var c1 = board.create('circle', [p1, 2.0],{visible: board.jc.snippet(
"(counter < 5 || counter > 10) ? true: false", true, '', false)});
// Increase JessieCode variable `counter`
var button = board.create('button',[1, 4, 'increase counter',
function() {
board.jc.parse('counter = counter + 1;');
}
]);
// Create function `function() {return counter; }`
var t = board.create('text',[1, 1, board.jc.snippet('counter' , true, '', )]);
最良好的祝愿,
阿尔弗雷德
我正在尝试使用 jessiecode 更新 canvas 对象。看起来我在这里遗漏了一些东西 - fiddleboard.create('circle', [p1, 2.0],{visible:board.jc.snippet("counter < 5 || counter > 10", true, 'counter', false)});
和 board.create('text',[1,1,board.jc.snippet(counter,true,'counter',false)]);
在此 fiddle 中,圆圈的可见 属性 和 1,1 处的文本在单击按钮时不会改变。
这确实是一个挑战!这里的主要问题是不允许 JessieCode 访问 JavaScript 变量。这是设计使然:出于安全原因,必须阻止对 DOM 的访问。
这意味着,counter
必须是 JessieCode 变量。可以用board.jc.parse("code")
.
执行任意JessieCode代码
这是完整的示例,请参阅 http://jsfiddle.net/a3x5de6t/4/:
var board = JXG.JSXGraph.initBoard('jxgbox', {
axis: true
});
// Set JessieCode variable `counter`
board.jc.parse("counter = 0;");
var p1 = board.create('point', [-2.0, 2.0]);
// Create `function() {return (counter < 5 || counter > 10) ? true: false; }`
var c1 = board.create('circle', [p1, 2.0],{visible: board.jc.snippet(
"(counter < 5 || counter > 10) ? true: false", true, '', false)});
// Increase JessieCode variable `counter`
var button = board.create('button',[1, 4, 'increase counter',
function() {
board.jc.parse('counter = counter + 1;');
}
]);
// Create function `function() {return counter; }`
var t = board.create('text',[1, 1, board.jc.snippet('counter' , true, '', )]);
最良好的祝愿, 阿尔弗雷德