所以我正在尝试读取数据,然后将其传递给另一个函数,以便我可以绘制路径。 数据很好,一切正常,我可以在控制台中查看。
正常绘图(使用onMouseEvent
)功能正常。
我可以使用不同的函数绘制它的唯一方法是,如果我在JS文件的顶部声明路径:
var reloadPath = new Path();
问题在于,当我呼叫reloadPath
时,它会自动连接线路(即使用户已经点击其他地方),这是我不想要的。
我在文件的开头尝试了var reloadPath;
,然后是
function reloadDrawing(data) {
reloadPath = new Path();
reloadPath.strokeColor = 'black';
reloadPath.add(data);
view.draw();
}
但这并没有画任何东西。
感谢。
编辑:
尝试了修正案,但没有奏效。我正在使用Jade而不是HTML(使用node.js)所以我的html中没有任何东西:使用socket.io也是如此 JS:
This does all the dynamic drawing stuff
io.on( 'reloadDrawing', function( data ) {
console.log("fired");
endDrawing(data);
startDrawing(data);
});
function endDrawing(data){
reloadPath.add(data);
view.draw();
reloadPath = new Path();
}
function startDrawing(data) {
reloadPath = new Path();
reloadPath.strokeColor = 'black';
reloadPath.add(data);
view.draw();
}
答案 0 :(得分:0)
在您的函数中,您覆盖reloadPath
,从而销毁已存在的数据。删除一行并添加另一个函数endDrawing
(或您喜欢的任何名称)。在onMouseUpEvent
中调用此新功能,按顺序"完成"这条线。在onMouseDown
- 事件中,使用startDrawing
函数开始新行。
function reloadDrawing(data) {
reloadPath.add(data);
view.draw();
}
function endDrawing(data){
reloadPath.add(data);
view.draw();
reloadPath = new Path();
}
function startDrawing(data) {
reloadPath = new Path();
reloadPath.strokeColor = 'black';
reloadPath.add(data);
view.draw();
}