![]() |
Реальные размеры объекта TextField
Как вычислить реальные размеры текстового поля, чтобы они соответствовали Break Apart этого тектового поля.
Не могу прикрепить пример, говорит загрузка прошла неудачна. вот код Код:
for (var z in this) { |
Можно попробовать с помощью BitmapData…
|
Можно. Я пробовал, есть одна проблема. Мне эти данные нужно на сервер передать чтобы сервер отрисовал у себя такую же надпись. А если я передам "..." (текст в ковычках) , то верхней левой точкой будут не корректные координаты.
|
А что мешает отправить сам текст в BitmapData?
|
Вопрос был про размеры а-ля Break Apart.
"..." - определиться точно по размерам, не так ли? Координаты - другой вопрос. Насколько я понимаю, они всегда будут +2 пиксела от координат текстового поля. |
давайте мыло, я вышлю пример, залить не получается. пишет ошибка
Цитата:
Повторяю еще раз, я пробовал через битмапдату. вычислял левую верхнюю точку и правую нижнюю, вариант не подходит. |
Нет, ты меня не понял — я говорю о том, что отправить весь BitmapData на сервер, прям вместе с текстом.
Зачем отправлять какие-то там координаты и т.п., когда можно готовую картинку отправить? |
Цитата:
Цитата:
|
Ну да, getPixel, все дела. Отправляем в каком-нибудь удобоваримом виде в php, а он уже соберет картинку и сохранит, например, в JPEG.
|
а есть алгоритмы сжатия данных во флеше? а то 280*280*6=470400 байт :(
я конечно понимаю ты можешь подколоть анлимом, но это рассчитанно на пользователей модемов;) |
Ну, для начала можно бинарно слать, через amfphp, это уже 200 КБ получается. Потом, ты можешь использовать LZW сжатие (соответствующие классы есть). Килобайт 80 будет в итоге…
|
Цитата:
|
не подходит.
спасибо за информацию. Если кто нибудь может, скажите мне что мне попались глючные фонты, и я успокоюсь:) Только аргументируйте:))) |
Фонты не глючные. У каждого символа есть определенные рамки и не всегда они совпадают с визуальными размерами символа (точнее, никогда не совпадают).
|
А как эти рамки вытащить из символа???
|
Да никак, собственно…
|
Я уже ручками пытаюсь найти логику в отношении координат и размеров надписи и ее Break Apart , но пока не нахожу ее.
|
«Логика» зашита в самом файле шрифта.
|
Еще бы найти описание как вытащить эту логику из файла шрифта...
|
Никак, в swf есть тег шрифта, самого файла там нет, а все параметры заданы жестко и не доступны для прочтения.
|
Да хотябы те что жестко вручную в коде забить константами.
|
Для каждого символа значения отступов и проч. — свои.
|
Мне не понятно, почему нельзя передать сам текст, его размер, и данные: италик, болд? Серверу должно быть пофиг размеры текстового поля, он лишь построит по этим данным надпись и обрежет лишнее.
|
В том то и дело что я так и передаю. но!! на выходе получается не совсем то что нужно. Сервер рисует надпись под обрез, флеш же передает координаты и размеры с учетом отступов TextField . И как вычислить эти отступы я сейчас пытаюсь уяснить.
|
Причем тут координаты и размеры текстового поля? Я говорю про размер шрифта.
|
Гм, чем BitmapData не угодил? Можно по горизонтали определить строки, в которых только прозрачные пиксели, потом по вертикали…
Изврат, конечно, но как вариант. |
Цитата:
|
Ребята, не подходят эти варианты, я тестил...
Пока выход - сервер будет рисовать с кривыми координатами |
Второй вариант не подходит? Чем и почему?
|
"Мне эти данные (т.е. текст текстового поля) нужно на сервер передать чтобы сервер отрисовал (что значит отрисовал? данные из флешового текстового поля перенес в форму на странице?) у себя такую же надпись."
Я тоже не пойму, чем этот пример http://www.sephiroth.it/tutorials/fl.../print_screen/ не устраивает? |
Цитата:
|
Цитата:
|
В общей методике ковыряния в пикселях.
|
Цитата:
|
Ну я не знаю, на мой взгляд, инструменты для определения размеров шейпа должны быть проще и не заморачиваться на неточных вычислениях количества пикселей с прозрачностью больше нуля и прочим хламом. Сама среда такие инструменты не представила, а подобные решения я считаю реальным извратом (т.е. применить можно, но не в массовом порядке). ИМХО.
|
Нам много чего не предоставили, и много приходиться писать самим, но это не считается извратом. Флеш не виноват в том, что некоторые шрифты кривые.
|
Гм, где шрифты кривые? textHeight и textWidth возвращают размеры, включая символьные рамки.
|
Цитата:
|
Метод с битмапдата не подходит, потому что пакет отправляемый на сервер не должен превышать 2-5кб за весь сеанс работы флешки.
Я понимаю что при помощи битмапдата я мог бы многое решить, но не подходит:) Именно из-за большого размера пакета. |
Тогда предложенный выше способ в руки.
|
| Часовой пояс GMT +4, время: 22:49. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.