Дано -- текстовое поле которое само переносит слов, нужно получить текст с переносами (\r) из этого текстового поля. Есть у кого-нибудь готовые функции? Я проблему решил но слишком зависима моя функция от количества текста. При объёме в страницу уже тормозит.
А оно и будет тормозить при размере текста "в страницу" , чего ты хотел? - строки, текстовые поля … сам знаешь, что это есть такое.
Теоретически, я разбил бы строку на массив слов, сделал бы поле высотой в одну строку и с автосайзом, ну и прибавлял по слову, высота поля изменилась - значит фигачим newline, но вот только смотри выше насчет скорости
var text = "Use movie clip symbols to create reusable pieces of animation. Movie clips have their own multiframe Timeline that is independent from the main Timeline - think of them as nested inside a main Timeline that can contain interactive controls, sounds, and even other movie clip instances. You can also place movie clip instances inside the Timeline of a button symbol to create animated buttons." var words = text.split(" ");
Ну это не теоретически (правда откинем всякие табуляции и т д) , просто практического применения я не вижу, это делали еще в 5-ке с помощью Selection - определяли где переход на новую строку …
А проблемы - повторю, сам все видишь : words.length и сложение строк в цикле, ни кто ничего нового тебе не даст!
не знаю - намного ли это быстрее - но я бы облегчил цикл так -
Цитата:
for(var i = 1; i < words.length; i++) { t.text += " " + words[i];
if(t._height > h) {
result += "\n";
t.text = "" } else { result += " "; }
result += words[i]; }
-----------
эксперимент показал - так быстрее: средний getTimer() в конце цикла - меньше. Увеличим текст в 5 раз - и получаем 5000 мсек при коде Забора и 350 при моем.
дальше нуран сам думай, я спать пошел
ПС - я на маке - так что может это только у меня такая серьезная разница
Король, да так будет быстрее, но я и не претендую на оптимизированный, законченный код - это иллюстрация к разговору , а самое убойное - это количество слов в "странице текста" …
То что встроенный wordWrap чудным образом тормозит, это мы уже выяснили с Eduard'ом и его БЫрками
nuran, в 5-ке делали текстовое поле высотой в одну строку, и дальше с помощью Selection.setSelection гуляли по строке (можно переходить по тем же пробельным символам), если значение scroll изменилось - значит перешли на новую строку.
Кстати, а зачем вешать эффекты на целую страницу текста?
Кстати, зря смеешся
Вот тебя все 3D в директоре интересовало, а если б побольше узнал о Imaging Lingo - то увидел бы массу классных текстовых эффектов.
Ну а сейчас, с появлением BitmapData сам бог велел, положил в библиотеку битмап со всем алфавитом, и давай выводить текст на манер AE эффектов
Да я не про Директор, … сам его пару раз открывал с тех пор
Я про то что народ почему то не шевелится в направлении текстовых эффектов основанных на битмапах, так что у тебя есть отличный шанс собрать все лавры
Именно - открываем пример по работе с растром в Директоре (коих в нете - тысяча) - и смотрим код. теперь практически всё (кроме quad к сожалению) доступно в флеше
результат действительно похож на то что в директоре можно сделать с quad (самый ярый - в примере 3dImage) но что-то мне подсказывает, что там не обошлось описанием четырех точек как в shockwave
@st@l@vist@, текстурки эти делаються по обычным алгоритмам http://algolist.manual.ru/graphics/3dfaq/index.php Ну а mode7 — это пол из одной текстуры + картинка супермарио. Короче ничего сложного. Но он опятьже никуда не ушёл от кубиков во флеше =)))))))))
Король, там идёт просто разбитие на множество треугольников которые размещаються как http://www.nuran.org/lab/flash/0003.htm четырёхуголники, чем их больше — тем точнее результат, забыл как это по-русски называеться правильно, по-инглишу это звучит как PLANAR DISTORTION — типа искажение на плоскости, алгоритм простой и имееться в гугле .
ну поэтому это и не настоящий quad - в директоре ты задаешь битмапу 4 точки - и он тянет его по ним сам. как тут - http://ctart.ru/swf/presentations/gorod.dcr а во флеше можно только бить на огромное количество кусков и выкладывать их
_________________ Здравствуй, Олимпийский!
Последний раз редактировалось Король 21 Декабрь 2005, 03:44:59, всего редактировалось 1 раз.
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.