本文深入研究高级织物。
密钥概念:
loadFromJSON
loadFromSVG
组:图1
编程组创建:
(结果见图2)。 使用>方法访问组中的单个对象。
<code class="language-javascript">var text = new fabric.Text('hello world', { fontSize: 30 }); var circle = new fabric.Circle({ radius: 100, fill: '#eef', scaleY: 0.5 }); var group = new fabric.Group([text, circle], { left: 150, top: 100, angle: -10 }); canvas.add(group);</code>修改组对象:
item
创建一个水平对齐的组:
<code class="language-javascript">group.item(0).set({ text: 'trololo', fill: 'white' }); group.item(1).setFill('red');</code>>
left
(见图4)。 对于包含图像的组,请确保在分组之前将图像充分加载。top
>
图4
,
,<code class="language-javascript">var circle1 = new fabric.Circle({ radius: 50, fill: 'red', left: 0 }); var circle2 = new fabric.Circle({ radius: 50, fill: 'green', left: 100 }); var circle3 = new fabric.Circle({ radius: 50, fill: 'blue', left: 200 }); var group = new fabric.Group([circle1, circle2, circle3], { left: 200, top: 100 }); canvas.add(group);</code>,
,
,,和。 在更新组尺寸时添加对象。 克隆现有的画布对象是必须在将它们添加到新组之前。
序列化:getObjects
size
>
babric.js使用toObject
>和toJSON
进行序列化。 toJSON
隐式调用toObject
。
>示例:序列化一个空画布:
<code class="language-javascript">var text = new fabric.Text('hello world', { fontSize: 30 }); var circle = new fabric.Circle({ radius: 100, fill: '#eef', scaleY: 0.5 }); var group = new fabric.Group([text, circle], { left: 150, top: 100, angle: -10 }); canvas.add(group);</code>
添加对象更新JSON表示。 toObject
>返回非弦乐对象表示。 自定义对象序列化是通过覆盖或扩展toObject
方法来实现的。
:toObject
SVG序列化使用
<code class="language-javascript">group.item(0).set({ text: 'trololo', fill: 'white' }); group.item(1).setFill('red');</code>方法。 这允许导出到任何SVG兼容的渲染器。
>
toSVG
toSVG
避难所:
> JSON的>和>
加载帆布状态。和loadFromJSON
从SVG数据加载。 loadFromDatalessJSON
>通过引用外部SVG文件有效地处理大型路径数据。
loadSVGFromURL
loadSVGFromString
>子类别:loadFromDatalessJSON
进行子类。 属性充当构造函数。 调用父类方法。
>示例:创建一个自定义类:fabric.util.createClass
initialize
callSuper
(有关
>和
>中处理。<code class="language-javascript">var circle1 = new fabric.Circle({ radius: 50, fill: 'red', left: 0 }); var circle2 = new fabric.Circle({ radius: 50, fill: 'green', left: 100 }); var circle3 = new fabric.Circle({ radius: 50, fill: 'blue', left: 200 }); var group = new fabric.Group([circle1, circle2, circle3], { left: 200, top: 100 }); canvas.add(group);</code>>
>LabeledRect
常见问题(常见问题解答):toObject
(所提供的常见问题解答已经结构良好且全面,因此这里不需要更改。)initialize
>
以上是Fabric.js:高级的详细内容。更多信息请关注PHP中文网其他相关文章!