Вход

Просмотр полной версии : Текстовый эффект


Psychoz
16.09.2007, 21:47
Нужно сделать текстовый эффект так чтобы текст печатался по букве (эффект печатной машинки) типа экрана DOS, несколько секунд стоял потом стирался побуквенно, и печатался новый текст и т.д.)

Kikasso
16.09.2007, 22:02
Ну так в чем проблема, делайте.

DarkLight
16.09.2007, 22:28
В поиск, обсуждалось.
Делается засчет изменения свойства text у динамического текстового поля через setInterval/setTimeout

Psychoz
17.09.2007, 01:22
В поиск, обсуждалось.
Делается засчет изменения свойства text у динамического текстового поля через setInterval/setTimeout
а поподробнее можно?!

__ant
17.09.2007, 01:31
Куда уж подробнее :)
Надо периодически вызывать функцию, которая меняет text в текстовом поле, согласно вашим правилам.
Первый раз вызвал функцию, она добавила первый символ.
Второй раз — второй символ и т.д.

Kikasso
17.09.2007, 02:40
var strings:Array = [
'Нужно сделать текстовый эффект так чтобы текст печатался по букве (эффект печатной машинки) типа экрана DOS, несколько секунд стоял потом стирался побуквенно, и печатался новый текст и т.д.)',
'Ну так в чем проблема, делайте.',
'В поиск, обсуждалось.\nДелается засчет изменения свойства text у динамического текстового поля через setInterval/setTimeout',
'а поподробнее можно?!',
'Куда уж подробнее \nНадо периодически вызывать функцию, которая меняет text в текстовом поле, согласно вашим правилам. \n Первый раз вызвал функцию, она добавила первый символ.\n Второй раз — второй символ и т.д.'
];
var curr:Number = 1;
var odd:Boolean = false;
var str:String = new String( strings[0] );

var txt:TextField = createTextField('txt',1,0,0,Stage.width, Stage.height);
txt.wordWrap = true;
var i:Number = 0;
var d:Number = 1;
var rate:Number = 30;
//onEnterFrame = typeIt;
var intervalId:Number = setInterval( typeIt, rate );
function typeIt():Void{
txt.text = 'C:>'+ str.substr( 0, i ) + '_';
i += d;
if( i > str.length || i < 0 ){
if( i < 0 ) changeIt();
else rate = 10;
//else
waitSome();
d *= -1;
i += d;
}
updateAfterEvent();
}
function changeIt():Void{
if ( curr >= strings.length ) curr = 0;
str = new String( strings[curr++] );
rate = 30;
}
function waitSome():Void{
clearInterval(intervalId);
intervalId = setInterval( blink, 100 );
setTimeout (runAgain, 2000 );
}
function runAgain():Void{
clearInterval(intervalId);
intervalId = setInterval( typeIt, rate );
}
function blink():Void{
txt.text = 'C:>'+ str.substr( 0, i ) + (odd ? '_' : '');
odd = !odd;
}

Psychoz
17.09.2007, 03:00
Kikasso спасибо) я просто не мог понять что делать чтобы стиралось)

Kikasso
17.09.2007, 03:56
я просто не мог понять что делать чтобы стиралось) Ну так и надо было писать - "добавляю текст так-то, как стереть не понимаю". А слово "нужно" более уместно в разделе "вакансии".