* Initializes parsing of an XML string, either a tmx (Map) string or tsx (Tileset) string * @param {String} xmlString * @param {Number} tilesetFirstGid * @return {Element}
(xmlStr: string, tilesetFirstGid?: number)
| 539 | * @return {Element} |
| 540 | */ |
| 541 | parseXMLString (xmlStr: string, tilesetFirstGid?: number): HTMLElement { |
| 542 | const parser = new SAXParser(); |
| 543 | const mapXML: Document = parser.parse(xmlStr); |
| 544 | let i: number; |
| 545 | |
| 546 | // PARSE <map> |
| 547 | const map = mapXML.documentElement; |
| 548 | |
| 549 | const orientationStr = map.getAttribute('orientation'); |
| 550 | const staggerAxisStr = map.getAttribute('staggeraxis'); |
| 551 | const staggerIndexStr = map.getAttribute('staggerindex'); |
| 552 | const hexSideLengthStr = map.getAttribute('hexsidelength'); |
| 553 | const renderorderStr = map.getAttribute('renderorder'); |
| 554 | const version = map.getAttribute('version') || '1.0.0'; |
| 555 | |
| 556 | if (map.nodeName === 'map') { |
| 557 | const versionArr = version.split('.'); |
| 558 | const supportVersion = this._supportVersion; |
| 559 | for (i = 0; i < supportVersion.length; i++) { |
| 560 | const v = parseInt(versionArr[i]) || 0; |
| 561 | const sv = supportVersion[i]; |
| 562 | if (sv < v) { |
| 563 | logID(7216, version); |
| 564 | break; |
| 565 | } |
| 566 | } |
| 567 | |
| 568 | if (orientationStr === 'orthogonal') this.orientation = Orientation.ORTHO; |
| 569 | else if (orientationStr === 'isometric') this.orientation = Orientation.ISO; |
| 570 | else if (orientationStr === 'hexagonal') this.orientation = Orientation.HEX; |
| 571 | else if (orientationStr !== null) logID(7217, orientationStr); |
| 572 | |
| 573 | if (renderorderStr === 'right-up') { |
| 574 | this.renderOrder = RenderOrder.RightUp; |
| 575 | } else if (renderorderStr === 'left-up') { |
| 576 | this.renderOrder = RenderOrder.LeftUp; |
| 577 | } else if (renderorderStr === 'left-down') { |
| 578 | this.renderOrder = RenderOrder.LeftDown; |
| 579 | } else { |
| 580 | this.renderOrder = RenderOrder.RightDown; |
| 581 | } |
| 582 | |
| 583 | if (staggerAxisStr === 'x') { |
| 584 | this.setStaggerAxis(StaggerAxis.STAGGERAXIS_X); |
| 585 | } else if (staggerAxisStr === 'y') { |
| 586 | this.setStaggerAxis(StaggerAxis.STAGGERAXIS_Y); |
| 587 | } |
| 588 | |
| 589 | if (staggerIndexStr === 'odd') { |
| 590 | this.setStaggerIndex(StaggerIndex.STAGGERINDEX_ODD); |
| 591 | } else if (staggerIndexStr === 'even') { |
| 592 | this.setStaggerIndex(StaggerIndex.STAGGERINDEX_EVEN); |
| 593 | } |
| 594 | |
| 595 | if (hexSideLengthStr) { |
| 596 | this.setHexSideLength(parseFloat(hexSideLengthStr)); |
| 597 | } |
| 598 |
no test coverage detected