Transformer
new Konva.Transformer(config)
Transformer 构造函数。Transformer 是一种特殊类型的组,允许你变换 Konva 基元和形状。变换工具在调整节点大小时不会更改节点的 width 和 height 属性,而是更改 scaleX 和 scaleY 属性
参数
| Name | Type | Description |
|---|---|---|
| config | Object | |
| resizeEnabled (optional) | Boolean | 默认为 true |
| rotateEnabled (optional) | Boolean | 默认为 true |
| rotateLineVisible (optional) | Boolean | 默认为 true |
| rotationSnaps (optional) | Array | 用于旋转吸附的角度数组。默认为 [] |
| rotationSnapTolerance (optional) | Number | 吸附容差。如果距离小于此值,则会吸附。默认为 5 |
| rotateAnchorOffset (optional) | Number | 默认为 50 |
| rotateAnchorCursor (optional) | String | 默认为 crosshair |
| padding (optional) | Number | 默认为 0 |
| borderEnabled (optional) | Boolean | 是否绘制边框?默认为 true |
| borderStroke (optional) | String | 边框描边颜色 |
| borderStrokeWidth (optional) | Number | 边框描边大小 |
| borderDash (optional) | Array | 边框虚线数组 |
| anchorFill (optional) | String | 锚点填充颜色 |
| anchorStroke (optional) | String | 锚点描边颜色 |
| anchorCornerRadius (optional) | String | 锚点圆角半径 |
| anchorStrokeWidth (optional) | Number | 锚点描边大小 |
| anchorSize (optional) | Number | 默认为 10 |
| keepRatio (optional) | Boolean | 移动边缘时是否保持比例?默认为 true |
| shiftBehavior (optional) | String | 移动边缘时按下 shift 键,Transformer 应如何响应?默认为 'default' |
| centeredScaling (optional) | Boolean | 是否相对于节点中心调整大小?默认为 false |
| enabledAnchors (optional) | Array | 启用的控制柄名称数组 |
| flipEnabled (optional) | Boolean | 变换时是否可以翻转/镜像形状?默认为 true |
| boundBoxFunc (optional) | function | 边界框函数 |
| ignoreStroke (optional) | function | 是否忽略描边大小?默认为 false |
| useSingleNodeRotation (optional) | Boolean | 仅附加一个节点时,是否使用该节点的旋转角度作为 Transformer 的旋转角度? |
| shouldOverdrawWholeArea (optional) | Boolean | 是否用假的透明形状填充整个 Transformer 区域,以便从空白区域开始拖动? |
自有方法
attachTo()
tr.nodes([shape]) 的别名/此方法已弃用,很快将被移除
返回值: Konva.Transformer
示例:
transformer.attachTo(shape);
getActiveAnchor()
返回当前活动锚点的名称
返回值: String|Null
示例:
transformer.getActiveAnchor();
detach()
将 Transformer 从附加的节点上分离
返回值: Konva.Transformer
示例:
transformer.detach();
on(evtStr, handler)
为 Transformer 绑定事件。你可以使用以下事件:transform、transformstart、transformend、dragstart、dragmove、dragend
参数:
evtStr(String):例如 'transform'handler(function):处理函数。该函数的第一个参数是事件对象。事件对象包含target(事件的主要目标)、currentTarget(当前节点监听器)和evt(原生浏览器事件)
返回值: Konva.Transformer
示例:
// add click listener
tr.on('transformstart', function() {
console.log('transform started');
});
forceUpdate()
强制更新 Konva.Transformer。当你更新了附加的 Konva.Group 并需要重置 Transformer 大小时使用
isTransforming()
确定 Transformer 是否处于活动变换状态
返回值: Boolean
stopTransform()
停止活动的变换操作
返回值: Boolean
enabledAnchors(array)
获取/设置启用的控制柄
参数:
array(Array)
返回值: Array
示例:
// get list of handlers
var enabledAnchors = transformer.enabledAnchors();
// set handlers
transformer.enabledAnchors(['top-left', 'top-center', 'top-right', 'middle-right', 'middle-left', 'bottom-left', 'bottom-center', 'bottom-right']);