0

我有一个围绕画布移动的圆圈。

当用户将鼠标放在圆上时,半径从 20 扩大到 100,当他们释放它时,它停止增长。

我想在它的中心显示圆的半径并让它随着它的增长而更新。

我的圈子和文字代码如下。我是否需要圆圈的高度和宽度以及文本正确居中的文本,并且圆圈仍然正常增长?

var circle = new Kinetic.Circle({
    x : stage.getWidth() / 2,
    y : stage.getHeight() / 2,
    radius : 20,
    fill : 'grey',
    stroke : 'black',
    strokeWidth : 1,
});

var radiusText = new Kinetic.Text({
    x : circle.getX(),
    y : circle.getY(),
    text : '10',
    fontSize : 10,
    height : (circle.getAttr('radius') * 2) / 2,
    width : (circle.getAttr('radius') * 2) /2,
    fontFamily : 'Verdana',
    fill : '#000',
    align : 'center'
});

http://jsfiddle.net/ZQEer/2/

4

1 回答 1

1

圆的 X、Y 坐标为圆心。文本的 X,Y 坐标位于左上角。您不需要在 radiusText 中设置宽度和高度。您可以使用偏移量:

var radiusText = new Kinetic.Text({
    x : circle.getX(),
    y : circle.getY(),
    text : '10',
    fontSize : 10,
    fontFamily : 'Verdana',
    fill : '#000',
    align : 'center'
});
radiusText.setOffset({
    x : radiusText.getWidth()/2,
    y : radiusText.getHeight()/2
});

http://jsfiddle.net/dhH9z/3/

于 2013-09-09T01:23:06.903 回答