#
on(type, listener)
从布局接收指定类型的事件后注册指定的侦听器。目前,type只有“word”和“end”。
每次成功放置word(单词)时,都会触发一个“word”事件。被放置的word对象作为唯一参数调用注册的侦听器。
当布局完成放置所有单词时,将触发“end”事件。成功放置的单词对象的数组(array)和表示放置对象范围的表单[{x0,y0},{x1,y1}]的边界对象将作为两个参数调用注册的侦听器。
# start()
开始布局的算法。这个初始化的属性对word对象的定义,并尝试去放置每一个word,再以最大的word启动。与矩形区域的中心建立,每一个word都可以用所有预留的材料进行碰撞。如果碰撞的话,它在一个新的位置,在螺旋的一个新位置上。
注:如果一个字不能在任何一种在螺旋形的位置上被屏蔽,它不包括在最后的文字中。这可能会在未来的释放中得到解决。
#stop()
停止布局的算法。
#timeInterval([time])
本质上,布局使用setInterval来避免锁定浏览器的事件循环。如果指定Interval,则时间是在当前时间步骤中可以花费的最大时间量。如果没有指定,则返回当前最大时间间隔,默认为Infinity。
#words([words])
如果指定了words,就返回该words数组,否则,返回原words数组,默认为[]。
#size([size])
如果指定了size,设置该 [width, height]为整个布局的矩形区域尺寸. 如果没有指定,返回现有的尺寸,默认为 [1, 1].
#font([font])
如果指定,则设置字体存取函数,该函数指示每个word的字体。如果未指定,则返回当前字体,默认值为“serif”。也可以指定常量而不是函数。
#fontStyle([fontStyle])
同上,字体样式默认为"normal"
#fontWeight([fontWeight])
同上,字体权重默认为" normal "
#fontSize([fontSize])
同上,字体大小默认为function(d) { return Math.sqrt(d.value); }
#rotate([rotate])
旋转角度,默认为function() { return (~~(Math.random() * 6) - 3) * 30; }
#text([text])
文本内容,默认为function(d) { return d.text; }
# spiral([spiral])
单词的螺旋类型,内置的两个为"archimedean" 和 "rectangular",也可以设置为其他任意螺旋类型。形式为
function(size) {
// t indicates the current step along the spiral; it may monotonically
// increase or decrease indicating clockwise or counterclockwise motion.
return function(t) { return[x, y]; };
}
#padding([padding])
单词间的间隔,默认为1
#random([random])
随机生成单词的初始位置和螺旋类型的方向,返回[0,1]的数字,默认为Math.random
#canvas([canvas])
画布生成器函数,在内部用于绘制文本。默认值为function() { return document.createElement("canvas"); }
(新手学习过程中人工翻译,如有错误,请指出~欢迎一起交流