|
|
|||||
Регистрация: Aug 2011
Сообщений: 8
|
auto-read
Подскажите, пожалуйста, как сделать чтобы текст с применением HTML-форматирования появлялся по одной букве.
Как это сделать для обычного текста с помощью charAt() я знаю, но появилась необходимость выделять слова в тексте. Нужно, чтобы каждая буква появлялась с заданным ей форматированием: myVari myVariable - это имя созданной вами переменной. Подскажите решение или альтернативу |
|
|||||
Регистрация: Apr 2011
Адрес: Томск
Сообщений: 57
|
var str:String = "<u>myVariable</u> - это имя созданной вами переменной."; txt.htmlText = ""; txt.html = true; var len:Number = str.length; var i:Number = 0; while (i<len) { var char = str.charAt(i); // Если попался символ начала тэга, то ищем конец тэга и все, что между ними добавляем. if (char == "<") { var index = str.indexOf(">",i); char = str.substring(i,index); // И переходим за символ конца тэга. i = index; } txt.htmlText += char; i++; } |
|
|||||
Модрон-ветеринар
|
Красиво, только наверное, для постепенного вывода не while, а что-то типа onEnterFrame или setInterval нужно?
И нужно учесть теги полностью, чтобы текст выводился согласно html-форматированию. Вот тут как раз сложность - нужно анализировать для каждого выводимого символа , между какими тегами он заключен и выводить его соответственно...
__________________
Идите первым! Последний раз редактировалось mooncar; 28.09.2011 в 08:00. |
|
|||||
Регистрация: Aug 2011
Сообщений: 8
|
Это не совсем то что мне надо.
Размещаю исходник, дабы показать как это примерно должно выглядеть(прошу сильно не пинать). Желательно ответ тоже с исходником. |
|
|||||
Регистрация: Apr 2011
Адрес: Томск
Сообщений: 57
|
Цитата:
А в чем именно сложность тэгов? Ведь текст появляется слева на право, если встречается тэг, то его полностью и добавляем + один следующий символ. Т.к. тег не закрыт, то он будет применяться ко всем остальным символам, пока его не закроют или пока другой тэг не перекроет. |
|
|||||
Модрон-ветеринар
|
Я не сразу сообразил, что флеш нормально умеет обрабатывать незакрытые теги.
Однако, в том виде, который вы привели, код не выводится так, что будет работает html-форматирование. Тому причиной, если я не ошибаюсь, то, что свойство htmlText необходимо применять к текстовому полю сразу целиком. Вот так будет работать: var str:String = '<u>myVariable</u> — это имя созданной вами переменной.'; var strToPrint:String = ''; txt.htmlText = ''; txt.html = true ; var len:Number = str.length ; var i:Number = 0; this.onEnterFrame = function() { var char = str.charAt(i); // Если попался символ начала тэга, то ищем конец тэга и все, что между ними добавляем. if (char == '<') { var index = str.indexOf('>', i); char = str.substring(i, index + 1); // И переходим за символ конца тэга. i = index; } strToPrint += char; txt.htmlText = strToPrint; i++; };
__________________
Идите первым! Последний раз редактировалось mooncar; 29.09.2011 в 12:03. |
|
|||||
Регистрация: Apr 2011
Адрес: Томск
Сообщений: 57
|
Насчет этого не знал. Спасибо
|
|
|||||
Регистрация: Aug 2011
Сообщений: 8
|
Большое спасибо за помощь, это как раз то что надо!
|
|
|||||
Что характерно - такой вывод текста нафик никому не нужен...
Если текста много - то это юзера будет бесить и раздражать. Если мало - проще тупо маской сделать ручками... |
Часовой пояс GMT +4, время: 00:49. |
|
« Предыдущая тема | Следующая тема » |
|
|