Advertisement
Guest User

Untitled

a guest
Mar 14th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. private static function recalculateTagsPositions(tags:Vector.<Tag>):Vector.<TagInfo>
  2.         {
  3.             var infos:Vector.<TagInfo> = new <TagInfo>[];
  4.             var tagsOpened:int = 0;
  5.             var tagsClosed:int = 0;
  6.             var substractLength:int = 0;
  7.  
  8.             for (var i:int = 0, length:int = tags.length; i < length; i++)
  9.             {
  10.                 var tag:Tag = tags[i];
  11.                 tag.start -= substractLength;
  12.  
  13.                 if (tag.type == CLOSING)
  14.                 {
  15.                     tagsClosed++;
  16.                     var openingTag:Tag = tags[i - tagsClosed]; //потому что открывающий всегда должен быть сразу перед
  17.  
  18.                     var tagInfo:TagInfo = new TagInfo();
  19.                     tagInfo.name = openingTag.name;
  20.                     tagInfo.attributes = openingTag.attributes;
  21.                     tagInfo.start = openingTag.start;
  22.                     tagInfo.length = tag.start - openingTag.start;
  23.  
  24.                     infos.push(tagInfo);
  25.                 }
  26.                 else
  27.                 {
  28.                     tagsOpened++;
  29.                 }
  30.  
  31.                 if (tagsOpened == tagsClosed)
  32.                 {
  33.                     tagsOpened = 0;
  34.                     tagsClosed = 0;
  35.                 }
  36.  
  37.                 substractLength += tag.tagLength;
  38.             }
  39.  
  40.             return infos;
  41.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement