Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Лишний перенос строки в тексте из XML (http://www.flasher.ru/forum/showthread.php?t=198296)

pomuс 23.04.2013 21:56

Лишний перенос строки в тексте из XML
 
Обыскался уже с ответом: не могу понять, почему когда берешь большой текст из xml, в тех местах где идет перенос строки (enteR) в флешке отображается как будто перенос сделали 2 раза.
Если просто задавать текстовое значение через
Код AS3:

mytext.text = "lalalala \n lalalala";

то все корректно отображается. Отсюда просится вывод что проблема в xml/ Перерыл гугл в поисках ответа, где пишут что надо прописывать xml.ignoreWhitespace = true; перед загрузкой, где после. Я как только не перепробовал - итог нулевой.

Как же избавится от лишнего переноса?
уже подумал может просто уменьшить расстояние между переносами, но и этого параметра в TextFormat я не нашел

MOHCTEP 23.04.2013 22:07

\r учитывайте.

chamele0n 23.04.2013 22:08

так ?
Код AS3:

trace( xml.toString().split('\r').join('') );


Sync 23.04.2013 22:10

а там точно только \n? не \r\n?

pomuс 23.04.2013 22:20

чего то я ничего не понял...
в 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 вручную перед отображением текста во флеше.

Wolsh 23.04.2013 22:44

Вложений: 1
Цитата:

нужен Unix-формат, т.е '\n', а не '\r\n'). Например Notepad++ (гугл выдаст).
FlashDevelop не хуже справляется
Вложение 29445

alexcon314 23.04.2013 22:48

notepad++ по-легче малость. А так-то да, FD рулит :).

pomuс 23.04.2013 23:28

Вложений: 1
Я может быть туплю, но у меня нету ни \n ни \r в xml. Работаю с Notepad++ но если что надо сделать легко редактируемым для других незнающих людей.
chamele0n я сделал как вы писали, безрезультатно

Все, разобрался, спасибо!
Голова уже уже гудит, тяжело доходит

P.S. так все таки есть параметр для определения расстояния по вертикали между абзацами?

Wolsh 24.04.2013 00:26

Цитата:

так все таки есть параметр для определения расстояния по вертикали между абзацами?
1. Такого понятия и в типографике то нет. Абзац просто с новой строки начинается и никакого особого отступа от предыдущего никогда не делалось — такие неровности в плотности набора убивают глаза. Параграф начинается горизонтальным отступом (1 TAB).
2. У Вас нет никаких параграфов. Перенос строки это не начало нового параграфа. Иначе каждая строка была бы параграфом, и большинство из них начиналось бы с середины слова :)

pomuс 24.04.2013 16:34

В моем понимании если идет нажатие Enter - то происходит как раз создание нового абзаца. А обычный перенос, который производится переносом предложения

ну вот например я пишу
а тут уже нажал Enter. И иногда красиво бы смотрелось, чтобы расстояние было бы больше, чем в обычном переносе

Wolsh 24.04.2013 17:15

Еще раз. У Вас на скриншоте простой текст (plain text). У него нет никакого форматирования, соответственно и никакой стиль форматирования привязать не к чему. Текстовое поле, слава создателям, не берет на себя ответственности решать, каким из способов ему обрабатывать символ переноса строки — полуторным отступом по вертикали или табом для first-letter. Оно просто переносит строку.
Так же, как браузер сейчас перенес строку и НИКАК это не обработал, потому что никакого форматирования не назначено.
Я слегка погорячился, сказав что абзацы не могут иметь специальный отступ по вертикали — в современной типографике такое встречается. Однако по канонам книжной типографики это неприемлемо, так как нарушает ритм. К ритму также стремятся и современные веб-дизайнеры, стараясь всегда выравнивать весь текст страницы по сетке (обычно 18 пикселей). Это все к тому, что не надо считать свое представление о "красиво" единственно верным и должным поддерживаться плеером на низком уровне. Если Вам нужно особое форматирование — просто сделайте форматирование. Свобода — это когда Вам ничего не навязывают.

pomuс 24.04.2013 22:52

да я и не собирался вступать тут в войну по этому вопросу и навязывать то что мне нравится. Что-то вы слишком лично приняли столь малозначительный вопрос

Wolsh 24.04.2013 23:29

Лично? О, нет. Просто этот вопрос в формате "Как же так? Почему плеер делает вот так, а не так [как мне нужно вот сейчас в этом конкретном проекте]" задается здесь с завидной периодичностью. Все удивляются, отчего их "заставляют" писать лишний код, описывая, на их взгляд, очевидное и естественное поведение. Почему не забить его по-умолчанию? Да потому что оно не очевидно и не естественно. Потому что есть другие способы и варианты. Понятно, о чем война?)) Сегодня Вам хочется вертикальный отступ для новой строки, а завтра Вы будете показывать колонки цифр, или стихотворение. И Вам дают свободу делать так или иначе. Не навязывают единственный способ, да. TextField умеет отображать не только plain text. Если надо — форматируйте свой текст тегами HTML и вешайте на них специальные стили CSS. Никто не лишил Вас возможности форматировать текст. Всё в Ваших руках. Но по-умолчанию (свойство .text) это просто текст, а перевод строки это просто перевод строки.


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

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