Форум 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)
-   -   Scroll в text_txt.autosize = true (http://www.flasher.ru/forum/showthread.php?t=92280)

sem1313 20.02.2007 21:16

Scroll в text_txt.autosize = true
 
Вложений: 1
Не знаю откуда взялся скролл в автосайзе, но он есть. Ведь насколько мне известно - автосайз, это выравнивание по высоте, по этому априори не должно быть ни какого скрола. Бред какой то. Это я наблюдаю давно. Но только сейчас решил спросить, потому как в текущем проекте, это стало критично.

etc 20.02.2007 21:41

А ты попробуй сначала текст присвоить, потом autoSize ему в true :D
Хотя нет, это заморочки не embed шрифтов.
Щас поковыряю.

UPD: Шрифт embed. А вот maxscroll у поля равен 2. Гм… Думаем дальше.

sem1313 20.02.2007 21:52

От смены мест слагаемых, результат не меняется... :)))

sem1313 20.02.2007 22:47

Кроме как отключить mouseWheel, я не пришел, ни к какому выводу... Хотя при выделении видно "лишнюю" строку

etc 20.02.2007 22:49

Ничего не надумал, я всегда selectable в false ставлю :D
Хотя, скроллинг был всегда точно.

Тебе нужно оставить поле выделяемым?

sem1313 20.02.2007 23:03

По идее, да. Selectable нужно оставить включенным. С заказчиком надо поговрить, и сказать, что нельзя так делать... :D...

Скроллинг, ладно с ним, его можно отключить, а вот как быть с выделением текста(?).... Там все время появляется лишняя строка...

lowka 20.02.2007 23:07

Можно выставлять насильно badTextField.scroll = 1 с помощью setInterval... Только все равно эта строка будет появляется, но значительно реже.
+
А поле обязательно должно не программно создаваться? Просто программное поле такой шутки не выдает.

sem1313 20.02.2007 23:25

2lowka, нет, это извращение... К тому же scroll вообще должен отсутствовать как таковой...

KPaul 21.02.2007 00:56

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

this.createTextField("txt", 1, 29, 158, 517, 21);
txt.wordWrap = true;
txt.multiline = true;
txt.autoSize = true;
txt.text = "...";


sem1313 21.02.2007 06:38

Всем спасибо.

Double 21.02.2007 08:42

посмотрел файл. никакого скролла...

iNils 21.02.2007 15:50

Проблема заключается в том, что при создании текстового поля ручками, leading имеет значение 2. Если исправить на 0, то скроллинга не будет.
Конечно нам не всегда нужно использовать 0, иногда нужны и другие значение. Решением в данном случаи будет изменение leading только для последней строки. В данном примере надо добавить:
Код:

fmt = txText_txt.getTextFormat ();
fmt.leading = 0;
txText_txt.setTextFormat (txText_txt.length - 22, txText_txt.length, fmt);

22 - это количество символов в последней строке. Можно и больше, главное чтобы не привышало сумму символов последней и предпоследней строк.

sem1313 21.02.2007 17:57

iNils, круто(!)... Спасибо.

Dendroid 21.02.2007 19:16

Ещё можно менять размер поля после того, как autosize отработает.
Тут я приводил код, который очевидно и для любого положительного leading работает: http://www.flasher.ru/forum/showpost...94&postcount=9

Кстати, у меня в 9-м плеере скроллинга в примере не возникает, а в 7-м standalone есть. Пофиксали начиная с какой-то версии?


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

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