Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Сохранить формат отрезка текста. (http://www.flasher.ru/forum/showthread.php?t=194770)

AlexLucas 21.02.2013 22:29

Сохранить формат отрезка текста.
 
Доброго времени суток.
У меня задача задать отрезку текста в TextArea нужный стиль (bold, italic, underline) и шрифт, но в то же время сохранить предыдущий, чтобы была возможность откатить.
Проблема в том, что если в выбранном отрезке есть символы с разными стилями и шрифтами, я не смогу сохранить это в один отдельный TextLayoutFormat.
Скорее всего вопрос где-то уже поднимался, но найти не могу.
Наверное , как вариант, посимвольно сохранять стиль, но создавать по TextLayoutFormat'y на символ это оверкил.
Думал html text использовать, но не знаю как я смогу нарыть html text именно для своего отрезка текста из всей той кучи тэгов. То есть как-то смогу наверное регулярками, но тоже будет очень муторно.
Может есть другие варианты попроще и получше?

expl 21.02.2013 23:26

По идее, перед применением надо
- найти и запомнить все _концы_ и _начала_ применений стилей внутри изменяемого отрезка текста (стиль, индекс)
При применении
- запомнить куда вставили новые _начала_ и _концы_ стилей
При отмене
- удалить концы и начала по запомненным индексам
- вставить запомненные старые _концы_ и _начала_.
Проблема в том что, я не работал с TextArea и не знаю, как там обращаются со стилями и вообще бывают ли они вложенными, т.е. может там что-то другое нужно.

Если говорить о простом TextField и TextFormat - то там, похоже, при применении сканировать посимвольно, сравнивать форматы - если одинаковые для соседних символов - запоминать в виде [(format1, количество символов), (format2, ...],
а перед откатом заменить все null-вые поля объектов TextFormat на дефолтные - иначе не перетрут существующие.

bifidokk 22.02.2013 09:50

если вы знаете название старого стиля, то для htmlText сработает обычный replace()


Часовой пояс GMT +4, время: 11:38.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.