Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как "отучить" input TextField добавлять лишний перенос строки? (http://www.flasher.ru/forum/showthread.php?t=117791)

chingachgoog 06.11.2008 19:34

Поведение текстового поля полностью логичное.

Вариант заплатки:
1) после чтения текста в динамик-поле - отключить автосайз (обязательно с задержкой!)
2) далее делаем поле инпутом и следим за числом строк - если строк стало больше чем было - включаем автосайз

Mnilionic 06.11.2008 19:37

iNils, действительно,
но тогда оформление конвертируется в формат флеша и как результат появляется перенос на новую строку.

Жень Шень 06.11.2008 19:41

Цитата:

Сообщение от chingachgoog (Сообщение 775177)
Вариант заплатки

chingachgoog, спасибо, буду пробовать.

Mnilionic 06.11.2008 22:33

Код:

f_createInterface = function () {
        _root.createTextField("links_txt", 1, 10, 10, 530, 1);
        links_txt.type = "input";
        with (links_txt) {
                border = true;
                html = true;
                wordWrap = true;
                multiline = true;
                autoSize = true;
                htmlText = my_xml.firstChild.firstChild.nodeValue;
        }
                var len = links_txt.text.length;
                if( links_txt.text.charAt(len - 1) == '\r' )
                links_txt.replaceText(len - 1, len, '');
       
};


Жень Шень 07.11.2008 11:14

Всем привет!
Спасибо за обсуждения моей проблемы.
2 Mnilionic: еще не успел опробывать, так как только пришел на работу и опробывал "танец с бубном" chingachgoog-а. И он сработал как мне надо!!!
При выходе из редактирования "инпута" вставил в своей основной программе такой код:
Код:

clip["container"+i].content_mc.input_txt.autoSize =false
clip["container"+i].content_mc.input_txt.type = "dynamic"
clip["container"+i].content_mc.input_txt.autoSize =true

И это помогло "подтянуть" пустую строку. Теперь она не влияет на "нужные" габариты текстового блока.
А код Mnilionic-а опробую тоже.
Еще раз спасибо!

iNils 07.11.2008 20:24

Нашел самое простое решение. Это убрать </p>, тогда разрыва строки не будет.

$mival 15.12.2008 21:39

Цитата:

Сообщение от iNils (Сообщение 775369)
Нашел самое простое решение. Это убрать </p>, тогда разрыва строки не будет.

столкнулся с такой проблемой с динамик текстом.
раньше как то не приходилось делать текст выделяемым, а теперь он выделяется и скролится на лишнюю строку вниз.

p нам нет вообще, история мне очень непонятна

Код AS1/AS2:

var tf:TextField = cont.txt;
tf.multiline = true;
tf.wordWrap = true;
tf.autoSize = TextFieldAutoSize.LEFT;
tf.htmlText = data.html.body;

зы:тему через поиск нашёл, не заметил что в ас2 тема, у меня проблема в ас3, но разницы вроде нет, и там и там есть такая история

Жень Шень 16.12.2008 11:10

Цитата:

Сообщение от $mival (Сообщение 784017)
...p там нет вообще...

Привет!
А пробывали "trace(tf.text)" после "tf.htmlText"? Флеш сам добавляет нужное форматирование для html текста и соответсвенно теги.

$mival 16.12.2008 11:43

Приветствую!

Цитата:

Сообщение от Жень Шень (Сообщение 784088)
Привет!
А пробывали "trace(tf.text)" после "tf.htmlText"? Флеш сам добавляет нужное форматирование для html текста и соответсвенно теги.

tf.text выдал простой текст бех тегов, а вот tf.htmlText после присвоения выдал кучу левых тегов, в т.ч. и Р, в который обрамлён весь текст и поверх него ещё обрамлено в textformat :mad:

вырезать видимо бесполезно потому что придётся снова присваивать и опять вставится

upd:
пока временно вот так

Код AS3:

function onTextScroll(e:Event):void
{
        tf.scrollV = 1;
}
 
tf.addEventListener(Event.SCROLL, onTextScroll);

проблему решает наполовину: колесом мыши не скролится, но если выделять сверху вниз то успевает дёрнуться вниз.
теперь видимо надо шаманить с выделением, ограничивать его какм-то образом.

Жень Шень 16.12.2008 15:54

Привет!
Ну, да, трейсить надо tf.htmlText.
Я остановился на варианте chingachgoog-а без задержки.
iNils-а предложение не реализовал по вышеизложеной причине.
Не знаю, как поведет код Mnilionic-а в АС3


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

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