2017-06-16 23 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

考虑使用图形命令来更新您的形状填充,而不是:直接访问儿童,而不是直接访问儿童:http://blog.createjs.com/new-command-approach-to-easeljs-graphics/ – Lanny

回答

0

在你的听众,target指容器本身。但event.target.text不是对作为其内部的子项添加的文本对象的引用。为了访问第二个孩子,你需要做event.target.children[1]

+1

推荐'getChildAt(1)' – Lanny

+0

的确如此,我忘了那个。 –