Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Flash > Бегущая строка


Автор: AntonioBanderaz 15.5.2005, 00:19
Такая задача. хочу сделать бегущую строку, чтобы она бегала в поле по прямой замкнуто... Вроде сделал, только если строка большая приходится ждать пока она полностью добежит до конца, чтобы увидеть её сначала... Как мне сделать чтобы у меня строка, как по барабану бегала, с небольшим растоянием между началом и концом... Я думаю это можно как-то двумя клипами сделать, но вот только не понимаю как... Подскажите ПЛЗ.

Вот код понятней будет...
Код

var Int:Number = setInterval(R2L, 1);
function R2L() {
    if (TagTxt._x>-TagTxt._width) {
        TagTxt._x -= .1;
    } else {
        TagTxt._x = 287.5;
    }
}

В TagTxt содержится поле TagTеxt с аутосайзом в true...

Автор: AlDev 15.5.2005, 07:04
Что-нибудь в таком роде...
Код

//create text field
function show_text(target_mc:MovieClip):Void
{
    var bs_tf:TextField;
    target_mc.createTextField("string_tf",target_mc.getNextHighestDepth(),0,0,0,0);
    bs_tf = target_mc['string_tf'];
    bs_tf.autoSize = true;
    bs_tf.text = ' blablablablabla ';
}
//-----------------------------------------------------------------------
//init clips
var i:Number = 0;
var bs_copies:Array = new Array();
var end:Boolean = false;
var x_pos:Number = 0;
while (!end)
{
    bs_copies[i] = this.createEmptyMovieClip('bs_movie_'+i,this.getNextHighestDepth());
    bs_copies[i]._x = x_pos;
    show_text(bs_copies[i]);
    x_pos += bs_copies[i]['string_tf']._width;
    if (x_pos>550)
    {
        end = true;
    }
    i++;
}
//-----------------------------------------------------------------------
var interval:Number = setInterval(moving,10);
//--------------------------------------------
function moving():Void
{
    var i:Number;
    for (i=0;i<bs_copies.length;i++)
    {
        bs_copies[i]._x -= 1;
        if ((bs_copies[i]._x+bs_copies[i]['string_tf']._width)<=0)
        {
            bs_copies[i]._x = 550;
        }
    }
}
stop();

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)