繁体   English   中英

更改路径onclick的颜色时打印文本

[英]Print text when changing color of path onclick

我正在尝试制作一个需要单击圆圈的游戏。 单击时,每个圆圈都会改变颜色。 我希望在单击所有圆圈后说“恭喜”,但此刻它仅在按下一个圆圈后显示“恭喜”。 知道我该如何解决吗?

var text = new PointText(view.center);
text.content = 'Congrats';
text.visible = false;
text.style = {
    fontFamily: 'Courier New',
    fontWeight: 'bold',
    fontSize: 100,
    fillColor: 'black',
    justification: 'center'
}

for (l = 0; l < balls.length; l++) {
    balls[l].onClick = function(event) {
        counter++



    this.fillColor = '#860d2b';
    var areAnyCoral = false;
    for (var j = 0; j < balls.length; j++) {
        if (balls[j].fillColor === 'coral') {
            areAnyCoral = true;
        }
    };
    if (areAnyCoral === false) {
        text.visible = true;
    }

}

}

我认为您应该对照text.visible属性的counter而不是填充颜色进行text.visible 这有意义吗?

var counter = 0;
var ball1 = {
  color: "notCoral"
};

var ball2 = {
  color: "notCoral"
}

var balls = [ball1, ball2];

balls.forEach(function(ball) {
  ball.onClick = function(event) {
    if (ball.color == "notCoral") {
      ball.color = "coral";
      counter++;
    }

    if (counter == balls.length) {
      text.visible = true;
    }
  }
});

实际上,您需要更改:

balls[j].fillColor === 'coral';

至:

balls[j].fillColor.equals('coral');

因为fillColor是一个对象,所以您需要使用“等于”方法来比较字符串颜色,例如: http : //paperjs.org/reference/color/#equals-color

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM