kineticjs rect fillText

时间:2012-11-10 17:48:12

标签: javascript canvas kineticjs

我的KineticJS矩形已经填充了'蓝色',我想在这个矩形框上显示文字。但是我的下面代码没有显示任何内容此外,我需要在按钮点击时分配此标签文本,同样的代码也在下面。

drawShape = new Kinetic.Rect({
            id: shapeId,
            name: shapeName,
            x: 0,
            y: 0,
            width: 150,
            height: 40,
            fill: "#00D2FF",
            stroke: "black",
            strokeWidth: 3,
            fillText: "Step" + stepNumber            
        });

function OnApplyPropertiesClick(){
drawShape.fillText(document.getElementById("txtLabel").value);  
}

对此有何帮助?请。

由于 比鲁

2 个答案:

答案 0 :(得分:5)

我认为您不能将文本添加到矩形对象,只有填充类型:

[颜色,线性渐变,径向渐变或图案]

为了解决这个问题,我创建了一个组,然后添加了一个矩形和文本对象,当我想创建一个带有文本的矩形时:

var group = new Kinetic.Group({

});

var rectangle = new Kinetic.Rect({

    x: 5,
    y: 5,
    width: 80,
    height: 35,
    fill: "green",
    stroke: "black",
    strokeWidth: 2

});

var rectangleText = new Kinetic.Text({

    x: 15,
    y: 10,
    text: 'test',
    fontSize: 20,
    fontFamily: 'Calibri',
    textFill: 'black'

});

group.add(rectangle);
group.add(rectangleText);
layer.add(group);

您应该能够调整您的听众,然后将其应用于此。

我做了一个jsfiddle来表明我的意思:

http://jsfiddle.net/B85Ff/

答案 1 :(得分:0)

您是否已将drawShape添加到任何图层?不会出现在您发布的代码段中。 此外,您需要在OnApplyPropertiesClick()函数的末尾绘制图层(如刷新)。