Просмотр полной версии : Лишний перенос строки в тексте из XML
Обыскался уже с ответом: не могу понять, почему когда берешь большой текст из xml, в тех местах где идет перенос строки (enteR) в флешке отображается как будто перенос сделали 2 раза.
Если просто задавать текстовое значение через
mytext.text = "lalalala \n lalalala";
то все корректно отображается. Отсюда просится вывод что проблема в xml/ Перерыл гугл в поисках ответа, где пишут что надо прописывать xml.ignoreWhitespace = true; перед загрузкой, где после. Я как только не перепробовал - итог нулевой.
Как же избавится от лишнего переноса?
уже подумал может просто уменьшить расстояние между переносами, но и этого параметра в TextFormat я не нашел
chamele0n
23.04.2013, 22:08
так ?
trace( xml.toString().split('\r').join('') );
а там точно только \n? не \r\n?
чего то я ничего не понял...
в as3 для переноса идет \n , в XML чего то подобного нету? То есть надо ввести какое то значение, которое заменять на \n?
chamele0n
23.04.2013, 22:30
яж тебе написал решение
\n - символ переноса строки
\r - это символ возврата каретки
alexcon314
23.04.2013, 22:32
xml - это просто текст. Надо воспользоваться редактором текста, который умеет автоматически подставлять нужный формат окончания строки (нужен Unix-формат, т.е '\n', а не '\r\n'). Например Notepad++ (гугл выдаст). И в нем сохранить/пересохранить/перенабрать xml.
Если редактировать xml нельзя (не ваш он, кто-то другой его пишет), тогда убирать \r вручную перед отображением текста во флеше.
нужен Unix-формат, т.е '\n', а не '\r\n'). Например Notepad++ (гугл выдаст).FlashDevelop не хуже справляется
29445
alexcon314
23.04.2013, 22:48
notepad++ по-легче малость. А так-то да, FD рулит :).
Я может быть туплю, но у меня нету ни \n ни \r в xml. Работаю с Notepad++ но если что надо сделать легко редактируемым для других незнающих людей.
chamele0n я сделал как вы писали, безрезультатно
Все, разобрался, спасибо!
Голова уже уже гудит, тяжело доходит
P.S. так все таки есть параметр для определения расстояния по вертикали между абзацами?
так все таки есть параметр для определения расстояния по вертикали между абзацами?
1. Такого понятия и в типографике то нет. Абзац просто с новой строки начинается и никакого особого отступа от предыдущего никогда не делалось — такие неровности в плотности набора убивают глаза. Параграф начинается горизонтальным отступом (1 TAB).
2. У Вас нет никаких параграфов. Перенос строки это не начало нового параграфа. Иначе каждая строка была бы параграфом, и большинство из них начиналось бы с середины слова :)
В моем понимании если идет нажатие Enter - то происходит как раз создание нового абзаца. А обычный перенос, который производится переносом предложения
ну вот например я пишу
а тут уже нажал Enter. И иногда красиво бы смотрелось, чтобы расстояние было бы больше, чем в обычном переносе
Еще раз. У Вас на скриншоте простой текст (plain text). У него нет никакого форматирования, соответственно и никакой стиль форматирования привязать не к чему. Текстовое поле, слава создателям, не берет на себя ответственности решать, каким из способов ему обрабатывать символ переноса строки — полуторным отступом по вертикали или табом для first-letter. Оно просто переносит строку.
Так же, как браузер сейчас перенес строку и НИКАК это не обработал, потому что никакого форматирования не назначено.
Я слегка погорячился, сказав что абзацы не могут иметь специальный отступ по вертикали — в современной типографике такое встречается. Однако по канонам книжной типографики это неприемлемо, так как нарушает ритм. К ритму также стремятся и современные веб-дизайнеры, стараясь всегда выравнивать весь текст страницы по сетке (обычно 18 пикселей). Это все к тому, что не надо считать свое представление о "красиво" единственно верным и должным поддерживаться плеером на низком уровне. Если Вам нужно особое форматирование — просто сделайте форматирование. Свобода — это когда Вам ничего не навязывают.
да я и не собирался вступать тут в войну по этому вопросу и навязывать то что мне нравится. Что-то вы слишком лично приняли столь малозначительный вопрос
Лично? О, нет. Просто этот вопрос в формате "Как же так? Почему плеер делает вот так, а не так [как мне нужно вот сейчас в этом конкретном проекте]" задается здесь с завидной периодичностью. Все удивляются, отчего их "заставляют" писать лишний код, описывая, на их взгляд, очевидное и естественное поведение. Почему не забить его по-умолчанию? Да потому что оно не очевидно и не естественно. Потому что есть другие способы и варианты. Понятно, о чем война?)) Сегодня Вам хочется вертикальный отступ для новой строки, а завтра Вы будете показывать колонки цифр, или стихотворение. И Вам дают свободу делать так или иначе. Не навязывают единственный способ, да. TextField умеет отображать не только plain text. Если надо — форматируйте (http://help.adobe.com/ru_RU/as3/dev/WS8d7bb3e8da6fb92f-20050207122bd5f80cb-7ff5.html) свой текст тегами HTML и вешайте на них специальные стили CSS. Никто не лишил Вас возможности форматировать текст. Всё в Ваших руках. Но по-умолчанию (свойство .text) это просто текст, а перевод строки это просто перевод строки.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.