![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Feb 2014
Сообщений: 56
|
Необходимо узнать в пикселах ширину текста Label, для определения размеров графической подложки под ним.
Шрифт может использоваться Неопределённый, любой. Заранее благодарен. |
|
|||||
|
Регистрация: Nov 2013
Сообщений: 86
|
Не знаю, о каком классе вы говорите, но может свойство width какое-нибудь...
|
|
|||||
|
Регистрация: Feb 2014
Сообщений: 56
|
Цитата:
к сожалению такой подход возвращает не верные значения. Если писать много "W" - широких символов, они начинают вылазить за пределы этих значений, а короткие, типа "i" пишутся, а фон растягивается как будто написано куча средних по ширине символов. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
fl.controls.Label — _label.textField.textWidth; mx.controls.Label — _label.textWidth; в спарках не разбираюсь, простите. Возможно, свойство screen:Rectangle поможет.
__________________
Reality.getBounds(this); |
|
|||||
|
Banned
Регистрация: Apr 2012
Сообщений: 162
|
Может обычный TextField?
|
|
|||||
|
measuredWidth, может
|
|
|||||
|
Регистрация: Feb 2014
Сообщений: 56
|
Никакие из вышестоящих методов не работают должным образом. Возвращаемые значения не соответствуют длине текста в пикселах.
Проверял так: создал подопытный текст, создал графический кубик, поставил их в одни координаты и сдвинул от друг-друга по вертикали, что они стали равны по начальной точке. Выводил разный текст и изменял ширину кубика на значение возвращаемое textField.textWidth. В коротких текстах, ширина кубика совпадает, в более длинных, от 7 символов, длина не дотягивает или в редких случаях перетягивает. На скриншоте, задний фон за текстом(кубик). Видно с какой разницей рассчитывается длина текста\фона. ![]() Добавлено 26 минут спустя, после пробы BitmapData =========================================== Попробовал загнать Label в BitmapData icon.iconBack.width = (Label.x + TextWidth() + 12); // фон public function TextWidth():Number { var textBitmap:BitmapData = new BitmapData(Label.textField.textWidth, 1, false, 0x00); return(textBitmap.width); } ![]() Последний раз редактировалось Freeman; 04.03.2014 в 04:31. |
|
|||||
|
Цитата:
public function TextWidth():Number { var textBitmap:BitmapData = new BitmapData(Label.textField.textWidth,Label.textField.textHeight , true, 0x0); textBitmap.draw(Label.textField); var rec:Rectangle = textBitmap.getColorBoundsRect(0xFF000000, 0x0, false); textBitmap.dispose(); return rec.width; } |
|
|||||
|
Регистрация: Feb 2014
Сообщений: 56
|
Не помогло как "Label.textField.getLineMetrics(0).width"
Так и BitmapData. Может сможете дать маленький рабочий пример в виде изменяемого Label с помощью TextInput, и чтобы под Label любая графическая картинка копировала его ширину?! Моя голова не находит решения..( ![]() Я честно стараюсь, пытаюсь искать решения как в поисковиках, так и методом проб, но задача не выполняется и тормозит весь прогресс. Надеюсь на вашу помощь, товарищи. Последний раз редактировалось Freeman; 04.03.2014 в 15:59. |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:46. |
|
|
« Предыдущая тема | Следующая тема » |
|
|