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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.04.2018, 12:39
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 21  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
А можно сделать соувсем уж извращение. Добавить в xml строку какой-нибудь левый разделитель, вместо \n, например #. И потом, при постановке в текстовое поле делать что-то вроде

Код AS3:
textField.text = makeWordWrap(xmlText);
 
function makeWordWrap(xmlText:String, delim:String='#'):String
{
    var result:String = '';
    xmlText.split(delim).forEach(function (item:String. i:int, arr:Array)
       {
              var newLine:String = i ? '\n' : '';
              result += newLine+item;
       });
 
     return result;
}
__________________
while(live()) { hope(); }

Старый 09.04.2018, 12:49
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 22  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
Цитата:
Сообщение от caseyryan Посмотреть сообщение
В качестве догадки могу предположить, что при конвертации текста в XML делается экранирование спецсимволов, чтобы этот \n попал в текст как есть. Тобишь на выходе получается не \n, а \\n, но трейсится, естественно, как простой \n
Как я понял засада что если грузить данные извне,то перенос не засчитывается, а при хардкоде строки ручками все ок.

Старый 09.04.2018, 12:52
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 23  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от undefined Посмотреть сообщение
Как я понял засада что если грузить данные извне,то перенос не засчитывается, а при хардкоде строки ручками все ок.
Потому что срабатывает штатный XML парсер, и добавляет экраны ко всем спецсимволам
__________________
Ко мне можно и нужно обращаться на ты)

Старый 09.04.2018, 12:55
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 24  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Да сделайте сдата в конце концов! Что за детский сад
__________________
Марк Tween

Старый 09.04.2018, 13:16
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 25  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
и добавляет экраны ко всем спецсимволам
всё сложнее: ни replace(), ни indexOf() вообще не находят "\n" в строке.

Добавлено через 18 минут
upd: indexOf() находит "\\n"
__________________
Reality.getBounds(this);

Старый 09.04.2018, 13:43
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 26  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
так кто его подставляет то URLLoader или XML?

Старый 09.04.2018, 13:46
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 27  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от Wolsh Посмотреть сообщение
всё сложнее: ни replace(), ни indexOf() вообще не находят "\n" в строке.

Добавлено через 18 минут
upd: indexOf() находит "\\n"
А если попробовать через юникод? \u000d
__________________
Ко мне можно и нужно обращаться на ты)

Старый 09.04.2018, 13:49
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 28  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
так кто его подставляет то URLLoader или XML?
URLLoader.
Еще до преобразования data в XML индексОф() находит \\n вместо \n.
__________________
Reality.getBounds(this);

Старый 09.04.2018, 13:55
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 29  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
in4core cdata слишком много лишнего мусора в тексте.
Тут всё же прозвучало решение, которое я использовал до всей этой дилемы с загрузкой через loader) Самый простой вариант, это просто вставить символ, который в тексте никогда не будет использоваться и просто подменять его.
Код AS3:
public static function getText(text:String):String
		{
			var str:String = ui[text];
			var result:String = "";
			for (var i:int = 0; i < str.length;i++ )
			{
				var char:String = str.charAt(i);
				if (char == "$")
				{
					var replaced:String = char.replace("$", "\n");
					result += replaced;
				}else
				{
					result += char;
				}
			}
			return result;
		}

Старый 09.04.2018, 13:57
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 30  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
попробуй так:
Код AS3:
text = text.replace(/\\\n/gi, "\n");
Самому сейчас никак не проверить

Цитата:
Сообщение от Godwarlock Посмотреть сообщение
in4core cdata слишком много лишнего мусора в тексте.
Тут всё же прозвучало решение, которое я использовал до всей этой дилемы с загрузкой через loader) Самый простой вариант, это просто вставить символ, который в тексте никогда не будет использоваться и просто подменять его.
Код AS3:
public static function getText(text:String):String
		{
			var str:String = ui[text];
			var result:String = "";
			for (var i:int = 0; i < str.length;i++ )
			{
				var char:String = str.charAt(i);
				if (char == "$")
				{
					var replaced:String = char.replace("$", "\n");
					result += replaced;
				}else
				{
					result += char;
				}
			}
			return result;
		}
Жесть) Лучше замени этот г-код на регулярку:
Код AS3:
public static function getText(text:String):String {
    return ui[text].replace(/\$/gi, "\n");
}
__________________
Ко мне можно и нужно обращаться на ты)

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

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

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


 


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


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