我是ProcessingJS / JS的初学者,我似乎无法让它工作。我正在使用processingjs创建圆圈和线条。在创建圆圈的同一个类中,我有以下两个函数:
void showCompanyLines() {
if (createdLines == false) {
createdLines = true;
rawData['company_partners'].forEach(function(partner) {
stroke( "#000000", myLinesOpacity);
var partnerInfo = circlesInfo[companyBubbleIds[partner]];
var partnerX = partnerInfo[0];
var partnerY = partnerInfo[1];
var myLocationX = posFinalX;
var myLocationY = posFinalY;
line(posFinalX, posFinalY, partnerX, partnerY);
});
}
}
void hideCompanyLines() {
myLinesOpacity = 0;
}
变量myLinesOpacity是全局的。如果可能的话,我想把它变成一个实例变量,但这可以在以后发生。
我唯一的问题是为什么hideCompanyLines不起作用。
干杯!
编辑:对上面的代码进行以下更改后:
void showCompanyLines() {
if (!createdLines) {
for (var j = 0; j < rawData['company_partners'].length; j++)
{
partner = rawData['company_partners'][j];
var partnerInfo = circlesInfo[companyBubbleIds[partner]];
var partnerX = partnerInfo[0];
var partnerY = partnerInfo[1];
var myLocationX = posFinalX;
var myLocationY = posFinalY;
var cl = new CompanyLine(partnerX, partnerY, myLocationX, myLocationY, 255);
companyLines.add(cl);// = cl;
numLines += 1;
}
}
draw();
}
void hideCompanyLines() {
createdLines = false;
for( int i=0; i < companyLines.size(); i++) {
companyLines.get(i).setOpacity(0);
}
draw();
}
class CompanyLine {
int opacity;
int x, y, w, z;
CompanyLine(_x, _y, _w, _z, _opacity) {
this.x = _x;
this.y = _y;
this.w = _w;
this.z = _z;
this.opacity = _opacity;
}
void setOpacity(op) {
this.opacity = op;
}
boolean update() {
if (this.opacity == 0) {return false;}
}
void display() {
noFill();
stroke( "#000000", this.opacity);
line(x, y, w, z);
console.log ('displaying with this opacity' + this.opacity)
}
}
我仍然得到同样的错误。基本上,当调用showCompanyLines时,会创建行,然后当调用hideCompanyLines时,它们不会被隐藏(将不透明度设置为0)。
我真的不知道我还能尝试什么 - 在ProcessingJS的逻辑上我必须犯一些错误。
干杯。
答案 0 :(得分:1)
修改强>
实际上,你的问题出在其他地方。我在ProcessingJS中编写了以下程序,它没有问题。检查出来并与你的产品进行比较,并在此处提出更多问题:
int opacity = 100;
void setup()
{
stroke("#000000", opacity);
strokeWeight(10);
}
void draw()
{
background(255);
stroke("#000000", opacity);
line(0,height/2,width,height/2);
noLoop();
}
void mouseOver()
{
opacity = 30;
loop();
}
void mouseOut()
{
opacity = 100;
loop();
}
答案 1 :(得分:0)
我不知道你在做什么...... 但是大多数代码(包括processing.js)是从上到下阅读的,所以当你寻找{{1}时,它实际上还没有被宣布。
请告诉我这是否解决了。