Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static function recalculateTagsPositions(tags:Vector.<Tag>):Vector.<TagInfo>
- {
- var infos:Vector.<TagInfo> = new <TagInfo>[];
- var tagsOpened:int = 0;
- var tagsClosed:int = 0;
- var substractLength:int = 0;
- for (var i:int = 0, length:int = tags.length; i < length; i++)
- {
- var tag:Tag = tags[i];
- tag.start -= substractLength;
- if (tag.type == CLOSING)
- {
- tagsClosed++;
- var openingTag:Tag = tags[i - tagsClosed]; //потому что открывающий всегда должен быть сразу перед
- var tagInfo:TagInfo = new TagInfo();
- tagInfo.name = openingTag.name;
- tagInfo.attributes = openingTag.attributes;
- tagInfo.start = openingTag.start;
- tagInfo.length = tag.start - openingTag.start;
- infos.push(tagInfo);
- }
- else
- {
- tagsOpened++;
- }
- if (tagsOpened == tagsClosed)
- {
- tagsOpened = 0;
- tagsClosed = 0;
- }
- substractLength += tag.tagLength;
- }
- return infos;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement