import { Constructor } from '@angular/material/core/common-behaviors/constructor'; import * as PIXI from 'pixi.js'; import { Point, Rectangle, Graphics, Container } from 'pixi.js'; import { WorkingAreaComponent } from '../working-area.component'; /** * 安信形状 */ export class AxShape extends Container { assetData: any; workingArea: WorkingAreaComponent; // 可以被移动的 moveable = true; // 可以被选中的 selectable = true; // 是否显示名称 showName = true; constructor(assetData: any, workingArea: WorkingAreaComponent) { super(); this.assetData = assetData; this.workingArea = workingArea; this.workingArea.backgroundImage.addChild(this); this.interactive = true; this.buttonMode = true; this.on('mousedown', event => { console.log(this.assetData); event.stopPropagation(); if (this.selectable) { this.workingArea.selection.selectOne(this); } if (this.moveable) { event.currentTarget.data = event.data; event.currentTarget.alpha = 0.5; event.currentTarget.dragging = true; event.currentTarget.dragPoint = event.data.getLocalPosition(event.currentTarget.parent); event.currentTarget.dragPoint.x -= event.currentTarget.x; event.currentTarget.dragPoint.y -= event.currentTarget.y; } }) .on('mouseup', event => { if (event.currentTarget.dragging) { event.currentTarget.alpha = 1; event.currentTarget.dragging = false; event.currentTarget.data = null; } }) .on('mouseupoutside', event => { if (event.currentTarget.dragging) { event.currentTarget.alpha = 1; event.currentTarget.dragging = false; event.currentTarget.data = null; } }) .on('mousemove', event => { if (event.currentTarget.dragging) { const newPosition = event.currentTarget.data.getLocalPosition(event.currentTarget.parent); event.currentTarget.x = newPosition.x - event.currentTarget.dragPoint.x; event.currentTarget.y = newPosition.y - event.currentTarget.dragPoint.y; this.assetData.Point = new PIXI.Point(this.x, this.y); this.workingArea.canvasData.isChange = true; } }) .on('rightclick', event => { }) .on('mouseover', event => { event.stopPropagation(); }) .on('mouseout', event => { event.stopPropagation(); }); } redraw(): void { } refresh(): void{ } }