使用paper.js将pointtext插入画布会推送其他项目

时间:2012-10-06 08:01:05

标签: javascript canvas paperjs

我正在尝试创建一个矩形和一个pointtext元素,其中矩形将是 文本元素的容器。

没有文字元素,一切正常。插入文本元素时,矩形被推开。好吧,矩形显示在正确的位置,但它接收事件的点被推开。

请参阅http://jsbin.com/abejim/1

悬停时,矩形的可见性会增加。悬停不会影响,但当鼠标移动到580,280左右时,它的可见性会增加。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

在Firefox中,jsbin似乎对我很好。矩形显示在正确的位置,并将鼠标悬停在矩形上使其突出显示。可能自从您提出问题后,paper.js代码已更新。


看起来你在纸上问了同样的问题.js mailing list。为了将来参考,回复是:

  

pointtext采用相对坐标,你试图给出绝对坐标。   试试这个:

var size = new paper.Size(125, 75);    //SM size to paper size
var rectangle = new paper.Rectangle({ x: 0, y: 0 }, size);    //(top_left, bottom_right)
var cornerSize = new paper.Size(10, 10);    //rounding of edges
var shape = new paper.Path.RoundRectangle(rectangle, cornerSize);
shape.strokeWidth = 3;
shape.strokeColor = '#525252';
shape.fillColor = '#FFFFFF';
shape.name = 'shape';
var stateNameTxt = new paper.PointText(10, 65);
stateNameTxt.content = state_name;
stateNameTxt.name = 'stateNameTxt';
var state = new paper.Group();    //create group
state.name = state_name;
state.opacity = 0.8;
state.addChild(shape);    //add shape to grpup
state.addChild(stateNameTxt);    //add pointtext  to group