import Polygon from 'zrender/src/graphic/shape/Polygon'; import Group from 'zrender/src/container/Group'; import { arrows } from '../libs/ShapePoints'; class ESigAuto extends Group { constructor(model) { super(); this.model = model; this._create(); } _create() { const model = this.model; const style = this.model.style; const rotation = model.drict != 1? 0 : Math.PI; const x = model.x + model.drict * (model.count * style.Signal.signalR + style.Signal.signalLampStandardWidth) * 2; const y = model.y - style.Signal.signalLampStandardWidth; this.arrows = new Polygon({ zlevel: model.zlevel, z: model.z, rotation: rotation, origin: [x, y], shape: { points: arrows(x, y, model.width, style.Signal.signalR * 0.8) }, style: { stroke: style.sidelineColor, lineWidth: 0.6, fill: style.Signal.signalLampGreenColor } }); this.add(this.arrows); } // 停止动画 animationRecover() { this.arrows.stopAnimation(false); } // 箭头颜色 setColor(color) { this.arrows.setStyle('fill', color); } // 箭头闪烁 arrowsAnimation() { const style = this.model.style; const fill = this.arrows.style.Signal.fill; this.arrows.animate(true) .when(1000, { fill: style.backgroundColor, stroke: style.style.backgroundColor }) .when(2000, { fill: fill, stroke: style.style.Signal.sidelineColor }) .when(3000, { fill: style.style.backgroundColor, stroke: style.style.backgroundColor }) .when(4000, { fill: fill, stroke: style.style.Signal.sidelineColor }) .start(); } } export default ESigAuto;