Просмотр полной версии : Как отследить переполнение текстового поля?
drobinkin
04.10.2007, 01:25
Имеется ввиду, можно ли как-то определить - влазит ли текст из подгружаемого файла целиком в текстовое поле или нет? На предмет того, что если не влазит - автоматом по этому признаку включать/добавлять полосу прокрутки. Спасибо.
Mr. Fixit
04.10.2007, 02:46
юзай компонент.
если сам хош сделать, то делай полосу прокрутки по высоте самого текстфилда.
drobinkin
04.10.2007, 02:59
юзай компонент.
если сам хош сделать, то делай полосу прокрутки по высоте самого текстфилда.
Не, ну это все понятно :)
У меня и так стоит полоса по высоте текстфилда. Просто я включаю ее ручками в тех кадрах, где подгружаемый текст не влазит целиком в текстфилд. Текстфилд фиксированной высоты. Просто хочется как-то автоматизировать эту фигню, ибо подобных кадров немало и расставлять все время ручками - как-то грустно :(
А по поводу компонентов - ты имеешь ввиду ТекстАриа и там типа уже предусмотрена такая фича?
TextField.maxscroll
TextField.bottomScroll
drobinkin
04.10.2007, 14:45
Double, смотри, я делаю примерно следующим образом:
if ((my_txt.maxscroll-my_txt.bottomScroll)>1) {
my_sb._visible = true;
my_sb._alpha = 100;
}
if ((my_txt.maxscroll-my_txt.bottomScroll)<=1) {
my_sb._visible = false;
my_sb._alpha = 0;
}
Мог конечно со знаками равенства чуть напутать, но все равно чето не работает :(
Уже с первого кадра показывает одинаковые значения боттомскролл и максскролл, хотя там заведомо текст больше, чем поле
В чем косяк?
drobinkin
04.10.2007, 14:53
Ага, фиг там - тока щас посмотрел - максскролл показывает максимальное значение св-ва скролл - я так понимаю в ТЕКУЩЕМ положении, т.е. не прокрученном до конца.
А как же все-таки узнать всю длину в строках (если можно так выразиться) текстового поля, не прокручивая его до конца?
Molecula
04.10.2007, 14:57
maxscroll тут не нужен!
Вот держи, тыщу раз юзал его.
Текс под маской, если его высота больше маски скрывает драгент, нет - драгим и всё.
http://khk.com.ua/scroller.rar
1. сделал динамическое мультилайновое текстовое поле.
2. присвоил ему много текста.
3. вывел трейсом его maxscroll и bottomScroll, получил 23 и 1.
что и где ты делаешь и получаешь - не возьмусь угадывать. нет ни времени, ни желания, ни навыков гадалки.
блин, так тебе надо узнать, вообще скрол показывать или нет, так? ну так и что мешает сразу после присвоения текста проверить влез он или нет?
chingachgoog
04.10.2007, 15:04
текст находящийся между TextField.scroll и TextField.bottomScroll это текст, видимый в настоящий момент в текстовом поле,
а TextField.maxscroll показывает максимальное значение TextField.scroll возможное в блоке (т.е. максимально значение верхней видимой строки)
Molecula
04.10.2007, 15:08
Да ему не нужен scroll и макс.scroll, автор потом захочет вместе с текстом и картинки драгить, тогда уже станет вопрос о других свойствах.
Ну, в общем автору решать.
drobinkin
04.10.2007, 15:20
Конец близок :)
Короче, если я прально понял, делаем так:
if (content_txt.maxscroll>=1) {
my_sb._visible = true;
my_sb._alpha = 100;
}
if (content_txt.maxscroll<1) {
my_sb._visible = false;
my_sb._alpha = 0;
}
Почти работает. Проверку делаю сразу после загрузки текста.
Беда в том, что при втором условии скролл не исчезает. У неко исчезают тока кнопки и слайдер, причем, подозреваю, происходит это автоматом без моего участия, ибо при создании скролла была еще указана строка
my_sb.setScrollTarget(my_txt);
Хотя если просто принудительно в кадре задать
my_sb._visible = false;
my_sb._alpha = 0;
то все работет вроде.
Эта гадкая малюсенькая собачонка, которая зарыта где-то совсем рядом, сведет меня с ума :) Помогите же отрыть ея :)
========================
Молекула, не с картинками не будет. Тока текст
Molecula
04.10.2007, 15:28
Я что-то не пойму, Вы компонент используете...если да, то чем Вам TextArea не угодил, у него там скроллер автоматов паказывается или скрывается.
Fernando Costa
04.10.2007, 15:31
если компонент то content_txt.vScrollPolicy = "auto";
Molecula
04.10.2007, 15:33
Так это ж дефолтное значение, оно сразу Ауто стоит.
И по горизонтали.
drobinkin
04.10.2007, 15:39
Я что-то не пойму, Вы компонент используете...если да, то чем Вам TextArea не угодил, у него там скроллер автоматов паказывается или скрывается.
Я юзаю текстфилд. Так уж сначала повелось :)
Fernando Costa
04.10.2007, 15:40
а, да, это у листа по умолчанию виден, тогда не понимаю в чем проблема
drobinkin
04.10.2007, 16:03
Проблема в том, что когда текст меньше, чем поле, т.е. влазит целиком, скроллбар НЕ ИСЧЕЗАЕТ. Т.е. по замыслу он должен появляться только если текст не влазит в поле. А когда влазит - скроллбар должен ИСЧЕЗНУТЬ. СОВСЕМ.
вопщем, чтоб понятней было - исходник 17836
drobinkin
04.10.2007, 18:15
Потух топик :(
Molecula
04.10.2007, 18:22
Я ж Вам кидал ссылку(на исходник) на 1-ой странице, Вы её смотрели?
Потух топик :(
Плюс за шило в пятой точке.
Сидите и ждите ответа, а не «поджигайте» модераторов.
drobinkin
04.10.2007, 19:36
Я ж Вам кидал ссылку(на исходник) на 1-ой странице, Вы её смотрели?
Спасибо за исходник, посмотрел, но как для моего случая - так по-моему навороченно. А ты мой исходник посмотрел? Там все проще. Просто для примера приведено 4 кадра, в каждом из которых грузится свой текст.
А в оригинале там таких кадров несколько десятков.
Molecula
04.10.2007, 20:19
Сорри, но вложение не открывается.
Так у меня тож можно хоть 200 кадров поставить, через гоуту переходить.
Ну ладно, не буду сбивать с темпа.
drobinkin
04.10.2007, 20:32
Поправил аттач в том посте
Molecula
04.10.2007, 21:10
http://khk.com.ua/scroll(fixed).rar - Держи счастье своё. Правил не всё, твою логику оставил, как есть.
drobinkin
04.10.2007, 21:54
Ну, Молекула, ну хитрец :) Спасибо, сижу ковыряю и сразу пачечка вопросов (буду уже добивать до конца :) )
1. Почему решил использовать textHeight? Чем мой вариант был плох?
2. Почему программно ты задаешь высоту поля 370 пикселей, а проверку по высоте делаешь 376? Что это за разница в 6 пикселей?
3. В первом кадре ты загружаешь подряд два текстовых файла (М01 и М02), причем в первом проверку по высоте не делаешь. Это так надо или просто случайно зафигачил две загрузки в одном кадре?
Вопрос 1 по прежнему актуален :)
drobinkin
05.10.2007, 00:05
Фу-у-ух, наконец-то я победил эту фигню, ура, товарищи !:yahoo:
Работает с проверкой через maxscroll. Благодаря неоценимой помощи уважаемого Молекулы. Спасибо, дружище. :victory:
И всем, кто терпел мою настойчивость — тоже большое спасибо.
Но в процессе копания выяснилось, что эта штука работает ТОЛЬКО (у меня по крайней мере) ПРИ ПРОГРАММНОМ СОЗДАНИИ текстового поля.
Вобщем, кому интересно, выкладываю доработанный исходник без мусора.
Небольшое пояснение: там все кино начинается со второго кадра. Видимо, когда начиналось с первого — не успевал загрузиться первый текстовый файл. А так - вроде все ок.
17840
Господа модераторы, наверное, тема исчерпана. Можно закрывать.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.