Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Текстовый эффект (http://www.flasher.ru/forum/showthread.php?t=101341)

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

Цитата:

Сообщение от DarkLight
В поиск, обсуждалось.
Делается засчет изменения свойства 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

Цитата:

Сообщение от Psychoz
я просто не мог понять что делать чтобы стиралось)

Ну так и надо было писать - "добавляю текст так-то, как стереть не понимаю". А слово "нужно" более уместно в разделе "вакансии".


Часовой пояс GMT +4, время: 11:40.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.