2017-06-16 15 views
0

mouseoveerイベントが発生したときに、各サークルの上にある円とテキストを更新しようとしていますが、円を更新するだけですが、テキストの更新方法はわかりません。あなたのリスナーにEaselJSテキストの更新方法

for (var i = 0; i < 100; i++) { 
 
    var circle = new createjs.Shape(); 
 
    var r = 7; 
 
    var x = window.innerWidth * Math.random(); 
 
    var y = window.innerHeight * Math.random(); 
 
    var color = colors[Math.floor(i % colors.length)]; 
 
    var alpha = 0.2 + Math.random() * 0.5; 
 
    circle.color = color; 
 
    circle.alpha = alpha; 
 
    circle.radius = r; 
 
    circle.graphics.beginFill(color).drawCircle(0, 0, r); 
 
    circle.x = x; 
 
    circle.y = y; 
 

 

 
    var txt = new createjs.Text(i.toString(), "11px Arial", "#FFF"); 
 
    txt.x = x - 4; 
 
    txt.y = y - 18; 
 

 
    var con = new createjs.Container(); 
 
    con.addChild(circle, txt); 
 

 
    con.addEventListener("mouseover", function(event) { 
 
    event.target.graphics.clear().beginFill(event.target.color).drawCircle(0, 0, 15).endFill(); 
 
    event.target.text = "dsfasd"; 
 
    stage.update(event); 
 
    }); 
 

 
    stage.addChild(con); 
 
}

+0

シェイプの塗りつぶしを更新するためにGraphicsコマンドを使用することを検討してください。http://blog.createjs.com/new-command-approach-to-easeljs-graphics/ – Lanny

答えて

0

targetは、コンテナ自体を指します。しかしevent.target.textは、その中に子として追加されたテキストオブジェクトへの参照ではありません。 2番目の子供にアクセスするには、event.target.children[1]をする必要があります。

+1

は、子に直接アクセスするのではなく、 'getChildAt(1)'を推奨します。 – Lanny

+0

それは本当に本当です、私はそのことを忘れていました。 –

関連する問題