Просмотр полной версии : Текстовое поле
MAXIM_IDEAL
09.12.2005, 20:46
Как определить координату (х,у) символа в текстовом поле с условием что текст многострочный, динамический, включен автоматический перенос слов (wordWrap=true), ширина зафиксирована, а высота изменяется динамически от того сколько сторк потянет.
Те. нужна функция на вход номер символа в тексте, сам текст,
ширина текста, объект TextFormat для всего текста
На выход: х и у символа относительно левого верхнего угла текстового поля.
Эта функция мне нужна для вставки смайликов...
Может кто сталкивался с подобной задачей?
Подскажите хотябы какие встроенные свойства объекты и методы для этого использовать.... Заранее благодарю. :)
Есть класс TextSnapshot (http://novemberain.com/livedocs/Help/ActionScriptLangRef/00001851.html), но он для текста статического. Я бы посоветовал сделать так: просто смотреть при помощи getTextExtent размеры поля для строки, на символ короче нужной (т.е. для строки "Мама мыла раму" надо определить позицию ы -- тогда смотрим размеры "Мама м"), плюс отступ. Однако если надо организовать поиск в строке, допустим, номер 2, ситуация сложнее.
Тогда придется определять строку руками. Я бы поступил так: определял ширину по словам до момента, когда она больше wrap limit, как только больше -- начинаем заново для следующей части текста, а число строк инкременируем.
Вообще задача более чем решаема и весьма интересна. Но приготовься, что все не так просто, как хотелось бы :)
Недавно эта тема поднималась. Надо поискать по форуму. Решение такой задачи во флеше действительно непростое.
http://www.delphimaster.ru/articles/flash/index.html
http://www.delphimaster.ru/articles/flash/index.html
Каким боком этот туториал связан с темой треда?
Каким боком этот туториал связан с темой треда?
Боком вставки смайлов в любое (теоретически) место текстфилда. Стало быть, алгоритм или его суть пригодится человеку.
Вставка смайлов реализуется банальной заменой :) Заменой на тэг, содержащий ссылку на объект в библиотеке/URL. И все.
Вообще да, но автор статьи не юзал банальности, но то что он сдела и решением правильным назвать нельзя. вобщем читайте главу 8 может быть подчерпнете что нибудь, но очень не советую
MAXIM_IDEAL
10.12.2005, 12:48
Спасибо Вам за помощь :)
С текстом возиться - дело не легкое,
надо разузнать еще все паравила переноса слов
на другую строку, чтобы это дело вручную производить,
например, как быть если одно слово будет длинее допустимой ширины,
и еще масса заковыристых вариантов...
надо самомому тепрь все проанализировать
и рассмотреть предложенные Вами материалы и советы.
MAXIM_IDEAL
11.12.2005, 11:58
Насчет растановки смайлов....
Я так понял, что эта задача нерешабельна изящным образом,
поэтому я решил плюнуть, и поступить вот как, т.к. чат мне все
равно надо будет внедрять в html или php страницу, то я размещю
вложенный фрейм (<iframe>) поверх флаш чата (<embed src="chatVideo.swf">), и буду из флаш файла передавать данные
в этот вложенный фрейм через связку actionScript - JavaScript.
Интересное решение, не правда ли? ;)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.