Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   textWidth при выравнивании справа - трабла :( (http://www.flasher.ru/forum/showthread.php?t=54597)

netstuff 10.02.2004 16:36

textWidth при выравнивании справа - трабла :(
 
динамическое поле "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. чтобы заэмбедить шрифт в текстовое поле програмно - нужно сделать в библиотеке шрифт, задать ему линкейдж, и перед установкой ембедФонтс = тру, задать полю форматом шрифт через тот линкейдж.

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


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

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