PDA

Просмотр полной версии : textWidth при выравнивании справа - трабла :(


netstuff
10.02.2004, 16:36
динамическое поле "textField". реальная ширина НИИ им. Баца ;) . выравнивание по правому краю.

textField.textWidth = НИИ им. Баца;

надо

textField.textWidth = реальный textWidth;

жду предложений...

[pS]
кстати, в догонку...
textField.embedFonts задается непосредственно полю или через TextFormat() ? :confused:

Nox Noctis
10.02.2004, 19:01
this.createTextField("TF", 1, Stage.width, 0, 0, 0);
TF.type = "input";
TF.autoSize = "right";
TF.text = "...don't try this at home =)";
//
format = TF.getTextFormat();
format.font = "_typewriter";
format.size=14, format.color=0xff6600, format.bold=1;
// кстати, забавный баг нашел когда-то...
// попробуйте раскомментировать следующую строчку =)
// format.align = "right";
//
TF.setTextFormat(format);
//
this.createEmptyMovieClip("line", 2);
line.onEnterFrame = function() {
var offset = (TF._width-TF.textWidth)/2;
this.clear();
this.lineStyle(1, 0, 100);
this.lineTo(TF.textWidth-offset, 0);
this._x = TF._x+offset;
this._y = TF._y+TF._height;
};
как видишь все нормально определяется :)
только откуда-то берется разница - переменная offset, но эта разница всегда фиксированная, и ширина текста получается определяется вполне жестко...

netstuff
10.02.2004, 19:51
всё-что касается createTextField() - всё намально, значит ли это, что autoSize работает только для программных полей?

но здесь всплывает другая проблема:

создаю в библиотеке шрифт, назначаю его программному ТП, но шрифт отображается аки "device font". ничуть не смутившись, прописываю textField.embedFonts = true и... текст исчезает, причем исчезает так, что textWidth не берется и на ум приходят мысли типа:

1. или textField.text = "";
2. или textField.removeMovieClip();

что с этим делать???

netstuff
11.02.2004, 13:50
ну, кто блеснет? :rolleyes:

Nox Noctis
11.02.2004, 15:04
1. с полями, созданными вручную - абсолютно то же самое. все работает аналогичною (даже баг тот же самый работает :) )

2. чтобы заэмбедить шрифт в текстовое поле програмно - нужно сделать в библиотеке шрифт, задать ему линкейдж, и перед установкой ембедФонтс = тру, задать полю форматом шрифт через тот линкейдж.

в поиске посмотри - примеров масса.

Nox Noctis
11.02.2004, 15:11
1. с полями, созданными вручную - абсолютно то же самое. все работает аналогичною (даже баг тот же самый работает :) )

2. чтобы заэмбедить шрифт в текстовое поле програмно - нужно сделать в библиотеке шрифт, задать ему линкейдж, и перед установкой ембедФонтс = тру, задать полю форматом шрифт через тот линкейдж.

в поиске посмотри - примеров масса.

Nox Noctis
11.02.2004, 15:23
1. с полями, созданными вручную - абсолютно то же самое. все работает аналогичною (даже баг тот же самый работает :) )

2. чтобы заэмбедить шрифт в текстовое поле програмно - нужно сделать в библиотеке шрифт, задать ему линкейдж, и перед установкой ембедФонтс = тру, задать полю форматом шрифт через тот линкейдж.

в поиске посмотри - примеров масса.