Форум 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)
-   -   Реальные размеры объекта TextField (http://www.flasher.ru/forum/showthread.php?t=97958)

Friday13 03.07.2007 20:06

Реальные размеры объекта TextField
 
Как вычислить реальные размеры текстового поля, чтобы они соответствовали Break Apart этого тектового поля.
Не могу прикрепить пример, говорит загрузка прошла неудачна.

вот код


Код:

for (var z in this) {
        if (this[z] instanceof TextField) {
                var my_fmt:TextFormat = this[z].getTextFormat()
                var metrics:Object = my_fmt.getTextExtent(this[z].text);
                this[z].autoSize = "left";
                var wdth = metrics.width;
                var hght = metrics.height;
                var x = this[z]._x;
                var y = this[z]._y;
                this.lineStyle(0.25, 0x00ee00)
                this.moveTo(x, y);
                this.lineTo(x + wdth, y);
                this.lineTo(x + wdth, y + hght);
                this.lineTo(x, y + hght);
                this.lineTo(x, y);
               
                var wdth = this[z]._width;
                var hght = this[z]._height;
                var x = this[z]._x;
                var y = this[z]._y;
                this.lineStyle(0.25, 0xff0000)
                this.moveTo(x, y);
                this.lineTo(x + wdth, y);
                this.lineTo(x + wdth, y + hght);
                this.lineTo(x, y + hght);
                this.lineTo(x, y);
               
                var wdth = this[z].textWidth;
                var hght = this[z].textHeight;
                var x = this[z]._x;
                var y = this[z]._y;
                this.lineStyle(0.25, 0x0000ff)
                this.moveTo(x, y);
                this.lineTo(x + wdth, y);
                this.lineTo(x + wdth, y + hght);
                this.lineTo(x, y + hght);
                this.lineTo(x, y);
        }
}

Чтобы заработал, создайте в Stage несколько тектовых полей с заембеденными символами, тип поля dynamic.

etc 04.07.2007 14:03

Можно попробовать с помощью BitmapData…

Friday13 04.07.2007 14:35

Можно. Я пробовал, есть одна проблема. Мне эти данные нужно на сервер передать чтобы сервер отрисовал у себя такую же надпись. А если я передам "..." (текст в ковычках) , то верхней левой точкой будут не корректные координаты.

etc 04.07.2007 14:40

А что мешает отправить сам текст в BitmapData?

chingachgoog 04.07.2007 14:41

Вопрос был про размеры а-ля Break Apart.
"..." - определиться точно по размерам, не так ли?
Координаты - другой вопрос.
Насколько я понимаю, они всегда будут +2 пиксела от координат текстового поля.

Friday13 04.07.2007 15:31

давайте мыло, я вышлю пример, залить не получается. пишет ошибка

Цитата:

Сообщение от __etc
А что мешает отправить сам текст в BitmapData?

мешает следующее, есть фонты начертания которых вылазит за границы их размеров. допустим ChinaCyr, Dollar, Monotype Corsiva.

Повторяю еще раз, я пробовал через битмапдату. вычислял левую верхнюю точку и правую нижнюю, вариант не подходит.

etc 04.07.2007 15:36

Нет, ты меня не понял — я говорю о том, что отправить весь BitmapData на сервер, прям вместе с текстом.
Зачем отправлять какие-то там координаты и т.п., когда можно готовую картинку отправить?

Friday13 04.07.2007 15:37

Цитата:

Сообщение от chingachgoog
"..." - определиться точно по размерам, не так ли?

у сервера другое мнение какие размеры у надписи аля троеточие :) он почему то считает что они на N пикселей выше от левой верхней точки:)

Цитата:

Сообщение от __etc
Нет, ты меня не понял — я говорю о том, что отправить весь BitmapData на сервер, прям вместе с текстом.
Зачем отправлять какие-то там координаты и т.п., когда можно готовую картинку отправить?

опа.. поподробнее пожалуйста? если через BitmapData.getPixel() то получается 4 картинки 280*280 надо отправлять. Или может есть другой способ?

etc 04.07.2007 15:44

Ну да, getPixel, все дела. Отправляем в каком-нибудь удобоваримом виде в php, а он уже соберет картинку и сохранит, например, в JPEG.

Friday13 04.07.2007 15:49

а есть алгоритмы сжатия данных во флеше? а то 280*280*6=470400 байт :(
я конечно понимаю ты можешь подколоть анлимом, но это рассчитанно на пользователей модемов;)


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

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