1

重複の可能性:
Javascript ループ内のイベント ハンドラー - クロージャーが必要ですか?

私はkineticjsの新しい学習者です。kinetic.shape を使用して次のような連続線を描画しているときに、複雑な javascript クロージャーの問題に遭遇しました。

  for(var i = 0; i < 4; i++)
  {
    var y_position = data[i];
    context.lineTo(i*x_position, y_position);
  }

私の場合、レイヤーが多すぎます。コードを何度も変更しましたが、期待した結果を得ることができません。誰か助けてもらえますか?

    for(var i = 0; i < 4; i++){ 
        var y_position = data[i];
        //document.write("<br/>"+y_position);  (it print 0 1 2 3)
        var line = new Kinetic.Shape({
            drawFunc: function() {
                var context = this.getContext();
                context.lineTo(i*x_position, y_position);
                this.stroke(context);
                //document.write("<br/>"+y_position);  (it print 3 3 3 3)
                },

                stroke: lineColor,
                strokeWidth: 1
            });
            layer.add(line);
    }
4

0 に答える 0