Angular Konva 变换器教程
变换器工具是命令式地附加到节点上的。在 Angular 中,这意味着创建一个 ko-transformer 并在视图准备就绪后将其连接到选定的形状。
说明:点击矩形以选中它,拖动它以移动它,点击空白舞台以清除选择。
有关更多详 细信息,请参阅 变换器 API 参考。
变换器示例
import { Component, ViewChild, AfterViewInit } from '@angular/core'; import { StageConfig } from 'konva/lib/Stage'; import { RectConfig } from 'konva/lib/shapes/Rect'; import { CoreShapeComponent, StageComponent, } from 'ng2-konva'; @Component({ selector: 'app-root', standalone: true, template: ` <ko-stage [config]="configStage" (click)="handleStageClick($event.event)"> <ko-layer> <ko-rect #rect [config]="configRect" (click)="handleShapeClick()" ></ko-rect> <ko-transformer #transformer></ko-transformer> </ko-layer> </ko-stage> `, imports: [StageComponent, CoreShapeComponent], }) export default class App implements AfterViewInit { @ViewChild('rect') rect!: any; @ViewChild('transformer') transformer!: any; public configStage: StageConfig = { width: window.innerWidth, height: window.innerHeight, }; public configRect: RectConfig = { x: 100, y: 100, width: 100, height: 100, fill: 'red', stroke: 'black', strokeWidth: 4, draggable: true }; ngAfterViewInit() { this.transformer.getNode().nodes([this.rect.getNode()]); } public handleStageClick(event: any): void { if (event?.target === event.target.getStage()) { this.transformer.getNode().nodes([]); } } public handleShapeClick(): void { this.transformer.getNode().nodes([this.rect.getNode()]); } }