Форум 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)
-   -   Как сделать обводку текстового поля (http://www.flasher.ru/forum/showthread.php?t=107699)

Makcumka 07.02.2008 15:05

Как сделать обводку текстового поля
 
Дано: динамически генерируется текст и для него создаётся TextField
Задача: Сделать так, чтобы этот текст выводился в прямоугольничке (с обводкой и фоном, как альтернативный текст к картинкам в браузере).

В голову приходит только решение "в лоб":
за текстом поместить MovieClip в котором нарисован прямоугольник нужного размера, но не понятно как узнать ширину/высоту динамически сгенерированного текста.
Как это сделать?

А может быть есть более изящные методы?

combo 07.02.2008 16:11

Может я неправильно понял стуь проблемы, но в чем сложность узнать _width/_height сгенерированного textfield'a?

Obi 07.02.2008 16:31

Ну вот как-то так:
Код:

var newMovieClip:MovieClip = _root.createEmptyMovieClip(mcName,Depth);
var newPromtTxt:TextField = newMovieClip.createTextField("promtTxt", Depth, 0, 0, 200, 1);

point1X = newPromtTxt._x-3;
point1Y = newPromtTxt._y-3;
point2X = newPromtTxt._x +newPromtTxt._width+3;
point2Y = newPromtTxt._y +newPromtTxt._height+3;
newMovieClip.lineStyle(1,borderColor,alpha);
newMovieClip.beginFill(BgColor,alpha);
newMovieClip.moveTo(point1X,point1Y);
newMovieClip.lineTo(point1X,point2Y);
newMovieClip.lineTo(point2X, point2Y);
newMovieClip.lineTo(point2X, point1Y);
newMovieClip.lineTo(point1X, point1Y);


MrPoma 07.02.2008 16:46

Код:

var txt:TextField = this.createTextField('txt', 0, 0, 0, 200, 100);
txt.border = true;
txt.borderColor = 0xa5a57c;
txt.background = true;
txt.backgroundColor = 0xff;


Makcumka 07.02.2008 22:41

combo, Obi, MrPoma, спасибо, но суть проблемы в том, что прямоугольник для текста должен быть минимальным, в котором бы помещался текст (именно в таком прямоугольнике появляется альтернативный текст в браузере).
Разобрался сам, решение было в использовании свойства autoSize:
Код:

var txt:TextField = this.createTextField('txt', 0, 10, 10, 1, 1);
txt.border = true;
txt.borderColor = 0x666666;
txt.background = true;
txt.backgroundColor = 0xffff99;
txt.text = "Текст";
txt.autoSize = true;



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

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