翻譯|使用教程|編輯:楊鵬連|2021-01-05 11:51:10.860|閱讀 112 次
概述:?這是所有圖形對象的抽象基類。從GraphObject繼承的類包括:Shape、TextBlock、Picture和Panel。部件類從面板類派生,節點類和鏈接類從面板類派生。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
GoJS是一款功能強大,快速且輕量級的流程圖控件,可幫助你在JavaScript 和HTML5 Canvas程序中創建流程圖,且極大地簡化您的JavaScript / Canvas 程序。
這是所有圖形對象的抽象基類。從GraphObject繼承的類包括:Shape、TextBlock、Picture和Panel。部件類從面板類派生,節點類和鏈接類從面板類派生。
使用靜態函數graphject是非常常見的。為了建立一個圖形對象的可視化樹。你可以在介紹中看到很多這樣的例子,從構建對象開始,從最小樣本開始。
由于GraphObject是一個抽象類,程序員不創建GraphObject本身,但是這個類定義了各種GraphObject所使用的許多屬性。
GraphObject上唯一的視覺屬性是background和areabbackground。然而,你可以通過設置可見來控制是否繪制圖形對象,或者如果你仍然希望圖形對象占據空間,可以將不透明度設置為零。此外,如果你想控制任何鼠標或觸摸事件是否“看到”GraphObject,你可以將pickable設置為false。
要了解更多關于如何繪制的信息,請參見Shape、TextBlock和Picture類上的屬性。
GraphObject分級
GraphObject定義了導致對象自身大小不同的大多數屬性。最突出的包括:
圖形對象的大小和位置在面板
一些graphhobject屬性指導包含的面板如何在面板中設置對象的大小和位置。
頂級圖形對象是部分
Part是表示頂級對象的GraphObject的派生類。所有頂級圖形對象都必須是部件,節點、鏈接、組和裝飾都源自部件。零件的位置決定了零件在文檔坐標中的左上角的位置。也看到部分。location,它支持基于零件中不同元素的不同位置來指定位置的方法。
有幾個只讀屬性可以幫助在可視化樹中導航。
用戶交互
圖形對象有幾個屬性,支持動態自定義交互。有幾個可定義的函數可以對輸入事件執行:mouseDragEnter, mouseDragLeave, mouseDrop, mouseEnter, mouseHold, mouseHover, mouseLeave和mouseOver。例如,你可以定義鼠標進入-離開事件處理程序來修改鼠標經過鏈接時的外觀:
myDiagram.linkTemplate = $(go.Link, $(go.Shape, { strokeWidth: 2, stroke: "gray" }, // default color is "gray" { // here E is the InputEvent and OBJ is this Shape mouseEnter: function(e, obj) { obj.strokeWidth = 4; obj.stroke = "dodgerblue"; }, mouseLeave: function(e, obj) { obj.strokeWidth = 2; obj.stroke = "gray"; } }));當用戶適當地單擊graphhobject時,會執行click、doubleClick和contextClick函數。調用這些單擊函數時,InputEvent作為第一個參數,而這個GraphObject作為第二個參數。例如,您可以在跳轉到另一個頁面的節點上定義一個單擊事件處理程序:
myDiagram.nodeTemplate = $(go.Node, "Auto", $(go.Shape, "RoundedRectangle", new go.Binding("fill", "color")), $(go.TextBlock, { name: "TB", margin: 3 }, new go.Binding("text", "key")), { // second arg will be this GraphObject, which in this case is the Node itself: click: function(e, node) { window.open("http://en.wikipedia.org/Wiki/" + node.data.key); } });注意:您可能更喜歡在圖上定義DiagramEvent監聽器,而不是在單獨的圖形對象上定義。DiagramEvents還包括更多的一般事件,這些事件不一定對應于輸入事件。
屬性actionCancel, actionDown, actionMove和actionUp定義了當GraphObject的isActionable屬性設置為true(默認為false)時要執行的函數。更多細節請參見ActionTool。
GraphObjects作為港口
在GoJS中,鏈接只能連接到指定為“端口”的節點內的元素,默認情況下,唯一的端口是節點本身。在節點中設置GraphObject的portId允許該對象充當端口。注意:唯一一種可以保存鏈接所連接的端口的模型,即非空字符串的portIds,是GraphLinksModel的GraphLinksModel。linkFromPortIdProperty GraphLinksModel。linkToPortIdProperty被設置為鏈接數據對象的名稱屬性。
圖形對象有幾個屬性,僅當它們作為端口時才相關。這些與港口相關的屬性是:
圖形對象還可以用作鏈接上的“標簽”。除了alignmentFocus屬性之外,這些屬性還會在鏈接面板中以一種特定的方式將“標簽”定位在鏈接路徑的特定點上:
有幾個屬性指定了相當高級的交互行為:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: