Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   неожиданное поведение текстфилда (http://www.flasher.ru/forum/showthread.php?t=210220)

undefined 09.02.2015 15:51

неожиданное поведение текстфилда
 
наткнулся на очень необычное поведение текстфилда. Имеем символ в библиотеке, в нем только одно-строчное текстовое поле . Шрифт - arial 16,символы заэмбежены. При попытке установить у текстфилда свойство autoSize почему-то меняется высота поля
Код AS3:

var t=new packTitle();
trace(t.height); //21.9
t.tf.autoSize=flash.text.TextFieldAutoSize.CENTER;
t.tf.text="WWWWWWWWWWWWWWWWWWWWWWWWW";
trace(t.height); //35.3
addChild(t);

С чем может быть связана такая гадость?

GBee 09.02.2015 21:45

Ну так автосайз же.

Добавлено через 53 секунды
В смысле непонятно чего вы ожидаете?

Zebestov 09.02.2015 22:30

Если строка по-прежнему одна, но высота отличается — это забавно. Может даже нужно разобраться.
Другое дело, кто вообще работает с tf.height? Обычно работаем с куда более информативным tf.textHeight.

undefined 10.02.2015 00:33

Gbee,ожидается,что однострочный тектфилд не будет менять свою высоту, а растянется по горизонтали. Эффект наблюдается даже если не менять содержимое поля.
Zebestov,строка одна, поле однострочное. в коде нет tf.height.Я смотрю высоту контейнера.И из-за этого глюка у меня вся разметка сползает.

ZackMercury 10.02.2015 01:07

Я думаю, поле растягивается под шрифт. Поставьте шрифт ещё больше/меньше и посмотрите на размеры, они должны поменяться. Если да, то значит в этом дело.

Wolsh 10.02.2015 01:53

Программно созданное поле с таким автосайзом под стандартный Ариал 16 пикселей с текстом WWWW имеет высоту 23 пикселя.

А можно нам вместо trace(t.height) узнать высоту самого текстфилда? Может, он изначально имеет такую высоту, что не вмещает текст 16 пикселей, то есть меньше 23?

undefined 10.02.2015 02:13

Wolsh, вопрос-то не в том почему именно 36, а в том,почему выставление autoSize меняет высоту однострочного текстфилда.Причем если убрать автосайз высота так и останется 21

Wolsh 10.02.2015 02:22

Цитата:

почему выставление autoSize меняет высоту однострочного текстфилда
Потому что, на минуточку, в этом и есть смысл автосайза — подстроиться под размер текста.

Добавлено через 27 минут
Я хочу обратить Ваше внимание на то, как задан вопрос. В нем практически нет никаких исходных. Вы даже размеры приводите не ТекстФилда, а некоего контейнера собственного класса. Поэтому отвечать остается на вот этот вопрос. ТекстФилд с автосайзом автоматически меняет сайз, потому что он с автосайзом.
Еще раз: я проверил, программный текстфилд с автосайзом принимает строго такой размер, чтобы вместить Ариал 16 — 23 пикселя. Нет никаких 35.3. Это проблема контейнера, скорее всего. Или изначально размер ТекстФилда в классе был меньше 10 пикселей.

caseyryan 10.02.2015 06:39

Так можно же при включенном autoSize принудительно задать высоту текстфилда. После этого будет меняться только ширина

undefined 10.02.2015 12:14

Вложений: 1
Цитата:

Потому что, на минуточку, в этом и есть смысл автосайза — подстроиться под размер текста.
Тут ключевое слово однострочный чтоб подстроиться он может разъехаться по горизонтали, но никак не по высоте.
Контейнер , в котором тектфилд не содержит никакого доп. кода,PaсkTitle - это автосгенерированный flash IDE класс,там только поле и все.Мне всегда казалось, что в таком случае высота контейнера должна совпасть с высотой поля.
Цитата:

Еще раз: я проверил, программный текстфилд с автосайзом принимает строго такой размер, чтобы вместить Ариал 16 — 23 пикселя. Нет никаких 35.3. Это проблема контейнера, скорее всего. Или изначально размер ТекстФилда в классе был меньше 10 пикселей.
Wolsh, не могли бы Вы попробовать запустить fla из аттача? Если это чисто у меня такая фигня,то пойду переустанавливать все


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

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