Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.03.2009, 05:23
malwin вне форума Посмотреть профиль Отправить личное сообщение для malwin Найти все сообщения от malwin
  № 1  
Ответить с цитированием
malwin

Регистрация: Feb 2009
Сообщений: 6
Question Использование TextField, XML и \r \n.

Проблема такая.
В программе гружу из XML текст и вставляют его в dynamic TextFiled.
Хочу некоторые символы вручную из XML переносить на новую строку, используя специальные символы: \r \n.
Но TextField отображает их как два символа, не распозновая в них специальных символов, и, соответственно, ничего не перенося на новую строку.
Для теста забивал текст в TextField вручную из кода тоже с использованием \r и \n. Все работает!
А из XML не хочет видеть специальных символов
Может кто-нибудь помоч?

Старый 21.03.2009, 11:08
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 2  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
можно в xml просто ентерев наставить
Код:
var i:int;
var xml:XML =
	<texts>
		<text x="50" y="10" fontSize="20">Это большой текстовый блок</text>
		<text x="50" y="40" fontSize="10">Это текстовый блок поменьше
с переносом строки
с переносом строки
с переносом строки
с переносом строки
с переносом строки
</text>
	</texts>

var reg:RegExp = /\n/gim;

trace(String(xml.text[1]).replace(reg,''));В панеле Output видим
в панеле output будет
Код:
Это текстовый блок поменьше
с переносом строки
с переносом строки
с переносом строки
с переносом строки
с переносом строки
можно и /r использовать
Код:
var i:int;
var xml:XML =
	<texts>
		<text x="50" y="10" fontSize="20">Это большой текстовый блок</text>
		<text x="50" y="40" fontSize="10">Это текстовый блок поменьше/rс переносом строки/rс переносом строки/r
</text>
	</texts>

var reg:RegExp = /\/r/gim;

//trace(String(xml.text[1]).replace(reg,''));В панеле Output видим
trace(String(xml.text[1]).replace(reg,'\n'));//В панеле Output видим
output
Код:
Это текстовый блок поменьше
с переносом строки
с переносом строки

Старый 21.03.2009, 21:33
malwin вне форума Посмотреть профиль Отправить личное сообщение для malwin Найти все сообщения от malwin
  № 3  
Ответить с цитированием
malwin

Регистрация: Feb 2009
Сообщений: 6
Спасибо!
В XML ентеров наставить - некрасиво.
Использую \r \n и метод replace, как указано в ответе. Все работает.
Но это по сути заглушка выходит.
Очередное доказательство кривости рук разработчиков Flash

Старый 21.03.2009, 22:54
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 4  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
причем здесь разработчики? Просто происходит декодирование, то что вы в XML поставили энтер, тот же символ что и \r
__________________
Отряд Котовскага

Старый 22.03.2009, 04:21
malwin вне форума Посмотреть профиль Отправить личное сообщение для malwin Найти все сообщения от malwin
  № 5  
Ответить с цитированием
malwin

Регистрация: Feb 2009
Сообщений: 6
В том то и дело, что без дополнительных преобразований(replace) работает только энтер.
Я писал программы на многих языках и с таким количеством недоработок и багов столкнулся только во Flash.

Старый 22.03.2009, 05:30
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 6  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Любой браузер, открыв ваш xml, так же не сделает переносы. Это не баг, это обычный текст. И флеш обрабатывает его как обычный текст, и не понятно с какой стати вы решили, будто он должен делать иначе. Если вы хотите, чтобы флеш обрабатывал эскейп последовательности, то replace вам в руки. В чем проблема? Хочется других поругать?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 22.03.2009, 13:12
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 7  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Cтавьте CDATA и теги <br> и преобразуйте текст в html , если так уж вам не нравится replace.
__________________
Отряд Котовскага

Старый 25.03.2009, 03:42
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 8  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
можно использовать символ "& # 010;"

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:24.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
textfield , xml

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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