import { TheoryINote } from "../interface/TheoryINote"; export class TheoryTie { public static startTieMeasureRecorder; public static startTieVoiceRecorder; public static addTieInformation(noteXML_: Element, note_: TheoryINote) { // tie let tieList = noteXML_.getElementsByTagName("tie"); if (tieList.length) { note_.isTieGroup = true; // 如果是连环 tie, 不是前后两个,而是连着好几个 同音连符 if (noteXML_.getElementsByTagName("tie").length === 2) { note_.tie1 = noteXML_.getElementsByTagName("tie")[0].getAttribute("type"); note_.tie2 = noteXML_.getElementsByTagName("tie")[1].getAttribute("type"); note_.isTie = true; // tie cross if (note_.measureIndex === this.startTieMeasureRecorder && note_.voice === this.startTieVoiceRecorder) { note_.isTieCross = false; } else { note_.isTieCross = true; } } // 如果只是最普通的前后同音连符 else if (noteXML_.getElementsByTagName("tie").length === 1) { note_.tie1 = noteXML_.getElementsByTagName("tie")[0].getAttribute("type"); note_.tie2 = null; if (note_.tie1 === "start") { note_.isTie = false; this.startTieMeasureRecorder = note_.measureIndex; this.startTieVoiceRecorder = note_.voice; note_.isTieCross = false; } else { note_.isTie = true; if (note_.measureIndex === this.startTieMeasureRecorder && note_.voice === this.startTieVoiceRecorder) { note_.isTieCross = false; } else { note_.isTieCross = true; } } } } else { note_.tie1 = null; note_.tie2 = null; note_.isTie = false; note_.isTieGroup = false; note_.isTieCross = false; } } }