本文深入研究高級織物。
密鑰概念:
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中文網其他相關文章!