Вход

Просмотр полной версии : Набор текста


Haiat
28.07.2008, 11:47
Добрый день.

http://www.vangogh-creative.it/main_popup.php?mode=fullscreen&lang=ita&flash=yes

Есть идеи как сделать такой набор текста? там слова loading набирается. Зайдите в раздел lab. Там название проектов тоже так набираются.
Но нужно учесть что текст большой может быть.
То есть чтобы для большого текста это выглядело так же красиво.

Haiat
28.07.2008, 20:01
Спасибо,вопрос снят. Сделал
Если кому интересно, пишите

etc
28.07.2008, 20:54
http://etcs.ru/blog/as2/ru/etcs/effects/texttween/

Haiat
30.07.2008, 17:53
Кое что написал тут быстренько сам.Грязный код конечно, но писал ночью.вроде всё работает и оставил. Но при большом тексте начинает тормозить. Как можно оптимизировать?

function nabor(object,subject,inter_name,next_function:Function){
if(_root["inter_i"+inter_name]>=object.length){
subject.htmlText=object
_root["inter_i"+inter_name]=0;
clearInterval(_root[inter_name]);
}else{
for(i=0;i<_root["inter_i"+inter_name];i++){
if(_root["inter_i"+inter_name]-i<5){
a=Math.round(Math.random()*(symbols.length-1));
aaa=subject.htmlText;
subject.htmlText=aaa.substring(0,i-1)+symbols[a]+aaa.substring(i,subject.length-1);
}else{
aaa=subject.htmlText;
subject.htmlText=object.substring(0,i-1)+aaa.charAt(i)+aaa.substring(i,subject.length-1);
}
}

subject.htmlText+=object.charAt(_root["inter_i"+inter_name]++);
}
}
вызов

_root.inter_iinter_slogan=0;
_root.inter_slogan=setInterval(_root.nabor,32,"Renova. Group of Companies.",_root.slogan_txt,"inter_slogan");

Haiat
31.07.2008, 03:34
Крутая вещь.Спасибо!
а можно как то отловить конец печатания. то есть например после набранного текста что нить трейсилось?

etc
31.07.2008, 12:52
Крутая вещь.Спасибо!
а можно как то отловить конец печатания. то есть например после набранного текста что нить трейсилось?

У класса есть соответствующее событие.

Haiat
01.08.2008, 17:34
Спасибо!
а вот такой вопрос
Функцию нельзя передать с параметрами,да?я это уже давно заметил. Функция сама сразу вызывается,не дожидаясь.Это как то можно обойти? вроде я читал что то про call, apply...

_root.tween.addEventListener(TextTween.STOP,_root.add_companies(0,this.razdel,this.nomer));

etc
01.08.2008, 18:15
_root.tween.addEventListener(TextTween.STOP,_root.tween.proxy(_root, _root.add_companies, 0, this.razdel, this.nomer));

p.S. И не называйте переменные типа «razdel» и «nomer». Для этого есть нормальные варианты на английском.

Haiat
01.08.2008, 18:54
Спасибо! Дурацкая привычка,и вправду нужно отвыкать от неё.
А вот если за пределами этого класса, то как можно обходить эту проблему?

etc
01.08.2008, 18:58
А вот если за пределами этого класса, то как можно обходить эту проблему?

Поискать на форуме соответствующие решения. Ничего не мешает использовать и сам proxy у TextTween отдельно.

Да, я неправильно написал код, верный вот:

import ru.etcs.effects.TextTween;
_root.tween.addEventListener(TextTween.STOP, TextTween.proxy(_root, _root.add_companies, 0, this.razdel, this.nomer));

Haiat
01.08.2008, 19:12
Функция вызывается, но немножко не правильно передаются парметры.
Сделал проверку:
1)в этой функции которая вызывается,я трейсли параметры
2)и сделал вне функции,сразу после той строчки с событием
_root.tween.addEventListener(TextTween.STOP, TextTween.proxy(_root, _root.add_companies, 0, this.razdel, this.nomer));
trace([0,this.razdel, this.nomer])


[object Object],0,2 - событие класса
0,2,1 - трейс

Трейс выдал всё правильно.а вот переданные параметры повели себя немного странно.2 и 3 пармаетр вены но должны стоять на 1 и 2 месте. и какой то объёект перед этим выдаёт

etc
01.08.2008, 19:19
[object Object] — это объект события, который посылает TextTween. Дополнительные аргументы должны идти далее.

Haiat
01.08.2008, 19:28
соответсвенно в самой функции, нужно добавить в начало какой нить аргумент,например object,для принятия его?

etc
01.08.2008, 19:46
event:Object. Написать надо, а использовать необязательно.

Haiat
01.08.2008, 22:08
Ясно.
А для чего это можно использовать?

Ещё такя вещь что использую нижеприведенный код в функции которые подключаются в root из файла .as. Всё работает. Пытаюсь сделать этот же самый код из другого места ролика, назначая его также на OnPress. не работает
трейс строчки _root.tween = new TextTween......... даёт резульатт undefined, хотя трейс этой же строчки из той функции гже работает, выдает инфу
В чём интересно здесь заключается проблема.

_root.tween = new TextTween(_root.data_xml.childNodes[0].childNodes[this.nomer].childNodes[0].attributes.text.toUpperCase(), Linear.easeOut, Linear.easeOut, 100, 2, 20);
_root.changedHandler = function(event:Object):Void {
_root.all_mc.content.pole.text = event.text;
}
_root.tween.addEventListener(TextTween.CHANGED,_root.changedHandler,this);
_root.tween.addEventListener(TextTween.STOP,_root.add_pechat);

etc
01.08.2008, 22:18
Ясно.
А для чего это можно использовать?
В объекте есть type (тип) события и target (источник) события, т.е. ссылка на экземпляр TextTween.

Ещё такя вещь что использую нижеприведенный код в функции которые подключаются в root из файла .as. Всё работает. Пытаюсь сделать этот же самый код из другого места ролика, назначая его также на OnPress. не работает
трейс строчки _root.tween = new TextTween......... даёт резульатт undefined, хотя трейс этой же строчки из той функции гже работает, выдает инфу
В чём интересно здесь заключается проблема.

Возможно, вы забыли написать import ru.etcs.effects.TextTween; в самом начале.

Haiat
01.08.2008, 22:47
Точно!А я не знал что нужно в каждом кадре импортить.
думал один раз на весь ролик

Спасибо!!
На днях выложу результат)
Цены Вам нет, для флэшеров!

Haiat
25.08.2008, 20:02
Добрый вечер.
__etc я балдею от Вашего класса. Очень Вам за него благодарен.

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

Спасибо

Haiat
11.09.2008, 19:01
А нельзя ли никак избавиться от тормозов? когда текст уже большой, то набор набирает большую скорость и строку большую добавляет, что влечет за собой тормоза. Можно ли что то придумать? например максимальную скорость задать или что. В общем что ни-будь чтобы избавиться от тормозов

etc
11.09.2008, 19:26
Этот класс и не предназначен для набора больших текстов, сам по себе эффект выглядит должным образом только на коротких строках.