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

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

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

Регистрация: May 2010
Адрес: Краснодар
Сообщений: 182
Отправить сообщение для djken с помощью ICQ Отправить сообщение для djken с помощью Skype™
Question Сбиваются индексы из-за иконок Emoji

Всем привет!

Вывожу текст в TextField с хэштегами и иконками. Иконки emoji конечно же не выводятся - они мне не нужны.
Задача: все хэштеги в тексте подсветить определенным цветом.

Код AS3:
var txt:TextField = new TextField();
txt.autoSize = TextFieldAutoSize.LEFT;
txt.text = "Любой текст с #хэштегами для #теста. Any text with #hashtags for the #test";
addChild(txt);
 
var fmt:TextFormat = new TextFormat();
fmt.color = 0x0033CC;
 
var arr:Array = getPosHashtags(txt.text);
for (var i in arr)
	txt.setTextFormat(fmt, arr[i][0], arr[i][1]);
 
function getPosHashtags(str:String):Array
{
	var arr:Array = [];
	var pattern:RegExp = /#[\S]*/g;
	var result:Object = pattern.exec(str);
 
	while (result != null)
	{
		arr.push([result.index, result.index + result[0].length]);
		result = pattern.exec(str);
	}
 
	return arr;
}
Проблема: если в тексте есть иконки emoji, то подсветка хэштегов съезжает...

Код AS3:
txt.text = "Любой текст с #хэштегами и котиками 🐈🐈 для #теста. Any text with #hashtags 😟 for the #test";
Как я догадываюсь, setTextFormat не учитывает скрытые символы в текстовом поле - из-за этого и происходит такой сдвиг...

В общем, решил я перед всем этим делом очищать текст от всех иконок...
Вот, например, хочу удалить из текста иконки с котом, которому соответствует unicode код u+1F408, но что-то никак не выходит...

Код AS3:
var str:String = "Тут иконки с котиками 🐈🐈 Попробуй-ка их удалить...";
trace("\t", s1); // с котами
 
var re:RegExp = new RegExp("([" + gen(0x1F408) + "])", "gi");
str = str.replace(re, "");
trace("\t", str); // ожидаю текст без котов, но увы..
 
function gen (obj:Object):String
{
	return String.fromCharCode(obj);
}
Плз, помогите советом
__________________
кто не отвечает, того garbage collector забирает

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

Теги
emoji , unicode , смайлики , хэштег , юникод
Опции темы
Опции просмотра

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

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


 


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


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