Javascript 通过p5上setup()中的DOM元素实例化对象
我遇到了一个问题,我试图在Javascript 通过p5上setup()中的DOM元素实例化对象,javascript,dom,undefined,p5.js,Javascript,Dom,Undefined,P5.js,我遇到了一个问题,我试图在p5的setup函数中实例化一个对象,使用回调来实现这一点: 这是与问题相关的sketch.js部分: var g; //for graph instance var dropzone; //for the file dropping area function setup() { createCanvas(640, 480); dropzone = select('#dropzone'); //selects the <p> eleme
p5
的setup函数中实例化一个对象,使用回调来实现这一点:
这是与问题相关的sketch.js
部分:
var g; //for graph instance
var dropzone; //for the file dropping area
function setup() {
createCanvas(640, 480);
dropzone = select('#dropzone'); //selects the <p> element I'm using as dropzone
dropzone.drop(process_file, unhighlight); //unhighlight is just a function to make the drop area not-highlighted
}
function draw() {
background(200);
if (g) {
g.show();
}else{
msg = "Please, load a file by dropping it in the box above";
text(msg, width/2, height/2);
}
}
// callback being used to process the text file content
function process_file(file){
data = file.data; //gets file data(content)
lines = data.split('\n'); // split the lines
digraph = lines[0] == 1 ? true : false; // is it a digraph?
v = int(lines[1]);
g = Graph(digraph, v); //the class I"m using to instantiate the graph
console.log(g); // <-- says undefined
g.init_graph(); // initialize all vertices
for (var i = 2; i < lines.length; i++) {
edge = lines[i].split(' ');
g.add_edge(edge[0], edge[1], edge[2]);
}
}
varg//例如图形
无功区//用于文件放置区域
函数设置(){
createCanvas(640480);
dropzone=select(“#dropzone”);//选择我用作dropzone的元素
dropzone.drop(process_file,unhighlight);//unhighlight只是一个使放置区域不高亮显示的函数
}
函数绘图(){
背景(200);
如果(g){
g、 show();
}否则{
msg=“请将文件放入上面的框中加载”;
文本(消息,宽度/2,高度/2);
}
}
//用于处理文本文件内容的回调
函数进程_文件(文件){
data=file.data;//获取文件数据(内容)
lines=data.split('\n');//拆分行
有向图=线[0]==1?真:假;//是有向图吗?
v=int(第[1]行);
g=图(有向图,v);//我用来实例化图的类
console.log(g);//查看此行:
g = Graph(digraph, v);
我想你是有意这么做的:
g = new Graph(digraph, v);
这将创建一个新实例,并将对该实例的引用存储在g
变量中。您的意思是g=new Graph(digraph,v);
?哦,天哪,这就是问题所在。我习惯于Python,不需要new
关键字。请将此作为答案发布,以便我可以标记为已解决?当然,答案已发布!