4
我使用Raphael构建了一些形状,现在我想将一些文本放入其中。但是,从例子看来,文本节点只能附加到纸上而不是svg的形状?使用Raphael JS创建文本节点
是否有可能在里面创建不同文字的多个形状?
我使用的例子是:
paper.text(50, 50, "Raphaël\nkicks\nbutt!");
我使用Raphael构建了一些形状,现在我想将一些文本放入其中。但是,从例子看来,文本节点只能附加到纸上而不是svg的形状?使用Raphael JS创建文本节点
是否有可能在里面创建不同文字的多个形状?
我使用的例子是:
paper.text(50, 50, "Raphaël\nkicks\nbutt!");
在圣拉斐尔,所有绘图元素(形状,线,文本,等)只存在为包括纸对象的一部分。他们本身没有层次结构。不幸的是,这些形状也没有文字属性。所以文本节点不能以正确的意义'附加'到形状元素上。
但是,您可以使用“设置”节点来赋予附加到形状的文本节点的外观。一个Set是一组元素,可以在单个操作中将变换(平移,旋转等)应用于所有成员。所以如果你创建了一个包含一个矩形和一个文本节点的集合,你可以把这个集合元素当作一个单独的实体。然后,您可以创建该集合的第二个实例并以不同的方式对待它。因此,虽然所有文本元素在技术上仍属于纸张对象,但它们表现为(并且出现)像它们属于矩形。
例如:
var paper = Raphael(0, 0, 400, 400);
for (var i = 0; i < 10; i++)
{
var group = paper.set();
group.push(paper.rect(10, 10, 50, 20));
group.push(paper.text(35, 18, "Hello"));
group.translate(Math.random() * 350, Math.random() * 380);
group.rotate(Math.random() * 90);
}
作为一种不同的方法,我也有一个页面上创建大量单独的文件对象的合理的成功。但那可能不是你想去的地方。
这里也问过,但没有解答:( http://groups.google.com/group/raphaeljs/browse_thread/thread/f23452980e739225/1cbfd7d8d8a91154?lnk=gst&q=text+circle#1cbfd7d8d8a91154 –
相关:HTTP: //stackoverflow.com/questions/3679436/how-can-i-combine-objects-in-the-raphael-javascript-library – arboc7