Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Текстовая анимация в TweenMax (http://www.flasher.ru/forum/showthread.php?t=168596)

Isaac 22.09.2011 15:10

Текстовая анимация в TweenMax
 
Здравствуйте.
Подскажите пожалуйста.
Есть текстовая анимация, в которой текст появляется слева направо и через несколько секунд буквы разлетаются начиная с последнего символа.
Вопрос заключается в следующем:
- Пожалуйста подскажите, что мне нужно изменить в коде, чтоб буквы разлетались начиная с первого символа?

Вот код
Код AS3:

import flash.geom.Rectangle;
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.utils.Timer;
import flash.events.TimerEvent;
 
import com.greensock.TweenLite;
import com.greensock.easing.Circ;
import com.greensock.OverwriteManager;
import com.greensock.plugins.TweenPlugin;
import com.greensock.plugins.BlurFilterPlugin;
 
TweenPlugin.activate([BlurFilterPlugin]);
 
 
// properties
var titleTime:Number = 12;                        // total time to display each string be sure to allow enough time for wind to finish
 
var tfX:Number = 30;                                // x position of tf on stage
var tfY:Number = 100;                                // y position of tf on stage
var holdDuration:Number = 5;                // time between fade in and wind
var fadeDuration:Number = 2;                // fade rate       
var fadeDelay:Number = 0.03;                // per letter delay to fade... set to 0 to fade all at once
var windDuration:Number = 1.2;                // duration of wind effect
var windDelay:Number = 0.1;                // per letter delay for wind effect
 
 
// strings - define your text here (sorry no htmltext)
var strings:Array = new Array();
 
strings[0] = 'vulputate, massa magna interdum nisi,';
strings[1] = 'celementum in rhoncus commodo, faucibus ac risus. Maecenas viv';
strings[2] = 'Proin sit amet placerat metus. Ut tempus malesuada erat et facilisis.';
 
var tsprite:Sprite = new Sprite();
tsprite.x = tfX;
tsprite.y = tfY;
tsprite.mouseChildren = false;
 
this.addChild(tsprite);
 
srctxt.visible = false;
 
OverwriteManager.init(OverwriteManager.AUTO);
 
// do the first one... rest are handled by the timer
srctxt.text = strings[0];
generateTF();
 
var timer:Timer = new Timer(titleTime*1000,strings.length-1);
timer.addEventListener(TimerEvent.TIMER,updater);
timer.start();
 
function updater(event:TimerEvent):void {
 
        srctxt.text = strings[timer.currentCount];
        generateTF();
}
 
 
function generateTF():void {
 
        while(tsprite.numChildren > 0) {
                tsprite.removeChildAt(0)
        }
 
        var tfl:Number = srctxt.length;
 
        for(var i:int = 0; i < tfl-1; ++i) {
 
                var atf:TextField = new TextField();
                var c:Sprite = new Sprite();
 
                atf.embedFonts = true;
                atf.selectable = false;
 
                atf.text = srctxt.text.charAt(i);
                atf.setTextFormat(srctxt.getTextFormat());
 
                var charPosition:Rectangle = srctxt.getCharBoundaries(i);
                c.x = charPosition.x;
                c.y = charPosition.y;
 
                c.alpha = 0;
 
                c.addChild(atf);
                tsprite.addChild(c);
        }
 
        animateTF();
}
 
function animateTF():void {
 
        var nc:Number = tsprite.numChildren;
        var fdelay:Number = 0;
        var wdelay:Number = 0;
 
        for (var i:int = 0; i < nc ; ++i) {
 
                TweenLite.to(tsprite.getChildAt(i),fadeDuration,{alpha: 1, delay:fdelay});
                fdelay += fadeDelay;
                TweenLite.to(tsprite.getChildAt((nc-1)-i),windDuration,{
                                        alpha: 0,
                                        rotation: (Math.random() * 100) - 50,
                                        y: -100,
                                        x: Math.random() * stage.stageWidth,
                                        blurFilter:{blurX: 4, blurY: 4},
                                        ease:Circ.easeIn,
                                        delay:holdDuration + wdelay
                                        });
                wdelay += windDelay;
        }       
}

Я так подозреваю, что всего лишь нужно изменить вот эту строчку
Код AS3:

TweenLite.to(tsprite.getChildAt((nc-1)-i),windDuration,{

но какие именно изменения нужно внести не понимаю :(

dimarik 22.09.2011 22:41

http://www.flasher.ru/forum/showthread.php?p=999853

Пост 2 и 5.

Isaac 23.09.2011 18:18

Цитата:

Сообщение от dimarik (Сообщение 1033851)

Спасибо!


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

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