![]() |
[вопрос] смайлики в чате - как?
день добрый! не подскажет ли кто направление мысли? нужно к существующему чату привернуть смайлики. пробовал использовать ДинамикТекст, но он умеет только ставить картинки по краям и делать обтекание текста. а мне нужно, чтобы смайлики можно было размещать внутри текста - как символы в строках.
видел один чат (на forum.myspace.com), в котором подобное реализовано. но там в тексте оставляется нужное количество пробелов под смайлик и картинка позиционируется вручную, что очень геморрно и практически невозможно (имхо - может я не прав?) при изменяемых размерах/гарнитурах шрифтов. может есть какой компонент, решающий эту задачу? может в 8-ке это уже работает? (работаю в флэш 7.2 про.) |
Не уверен, но, памоиму, в 8-е динамик текст прокатывает
|
Цитата:
|
По поиску в форуме порытья конечно же не судьба?..
Вот, уже не первый раз выкладываю. http://www.delphimaster.ru/articles/flash/index.html линк по теме.. Где то чуть дальше серидины описано как вставлять смайлы именно туда куда нужно. |
Цитата:
здесь уже тепло, хотя у меня немного "криво" все отображается, но хотя бы есть с чего начать. еще раз спасибо. |
...хотя здесь шрифты одной высоты, а мне придется еще высоту строки выщитывать... :(
(и почему же Макромедия все нормально сделать не могла?!) |
Попробуй использовать моноширинные шрифты, а картинку вставлять поверх текста, в тексте ее заменять на пробелы. Координаты картинки в таком случае расчитать вполне реально. Размер каждого символа ты знаешь, размер картинка тоже.
|
Цитата:
|
А можно и без моноширинных шрифтов. Тыж ф конце концофф можешь замерить длину каждого символа
|
Ага, линейкой. Ониж могут вроде и дробные пихеля иметь(шрифты-то тоже векторныя)
"вот заставить заказчика выбирать между сменой шрифтов и показом смайликов - куда более оптимистичный вариант." - вот и заставь. А по результату решишь. |
Зачем линейкой? Запринтскринь текст про мягкие французские булки и покандыбайся в фотожопе, замерив все символы. Сложно, зато результат будет афигенный
|
Я ж сказал что если они дробные??? Там же сглаживание!
|
Ну да, забыл... Значит по-другому: вставляем символ во флеш и замеряем
|
замеряем...что?
|
2 hlopetz
Да не за что! Цитата:
|
ребят, ну вы че, совсем - длину динамического текста в пикселях уже не можете вычислить без линейки?
создаем левое дин.поле с autoSize = true, пихаем туда текст, оттуда берем _width - и применяем где надо |
Цитата:
Цитата:
лучше уж по каждому слову мерить и переносить вручную... в общем ясно - как обычно операция "закат солнца вручную". :) |
"а _width возвращает длинну текста или длинну бокса с его отступами?"
а слабо длину отступов отнять от длины бокса и получить длину текста? |
Все это не катит
Я уже смотрел на эту ссылку, но что обидно, работает этот скрипт тормозно! Представьте, на странице ~30-50 смайлов, еще неизвесно сколько не отображается, да тут весь скрипт наглухо заглючит!!! Надо подходить к этой проблеме с другой позиции... Хотя, не отрицаю, идея положена правильная, но движок надо разгонять :)
|
Я лично подошел к этой позиции с другой позиции и сделал по одному общему смайлику на пост. Не так хорошо выражает эмоции, но и тормозит не порядок меньше.
|
сложно это очень. сравно ширину строки "iiiii" и строки "ЩЩЩЩЩ". разница понятна, хотя и там и там по 5 символов. Это вам не хтмл.
|
Юзать моноширинный шрифт!
|
Цитата:
|
А я сразу сказал моноширинный юзать
|
какое-никакое, а решение...
Цитата:
использовать так: 1) создать массив _root.SmileName с обозначениями смайлов (типа [":)", ":-)", ":(", ... ] ) и соотвествующие им символы (export for action script) с именами smile0, smile1, smile2 ... 2) создать объект SmileFormat, которому передать в управление текстовой поле, в котором будет отображаться текст чата: Код:
sf = new SmileFormat(history_txt);Код:
sf.addHTMLstring('ваш смешной :) или грустный :( текст здесь :-)');!!! я его еще на закончил, но основная мысля уже здесь есть !!! |
Респектно, хотя и слегка косовато...
|
Цитата:
|
Смайлы не совсем точно с текстом
|
Неплохо сделано
|
Ктошш спорит?
|
2 hlopetz у тебя получилось быстрее... обгонил, молодца...
и вот тебе смайлик в подарок ;) |
о, ravenco! старый знакомый! привет!
быстрее - это потому, что начал раньше (можешь дату начала треда глянуть - тогда и приступил). :) |
когда будем тестить?
|
Цитата:
се ля ви... |
| Часовой пояс GMT +4, время: 19:28. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.