Анимиране на текст
Привет. Ще ви покажа много лесен начин за създаване на анимирано движение на букви. Като за начало трябва да подготвите сцената .. тя ще съдържа едно текстово поле и няколко клипа. Този процес също може да се автоматизира, но това ще го видим може би в някой бъдещ урок. Veryhappy
В това видео ще видите какво трябва да направите за да подготвите сцента. С няколко думи имаме текстово поле с име 'bukva_txt', което е превърнато в клипче с име 'bukva_mc' , а това клипче в ново, което е експортнато от библиотеката за ActionScript с име 'anime'. Във въпросното клипче с име 'anime' съм направил проста анимация. На нейно място вие можете да сложите каквото ви харесва. Всичко това го обяснявам за кратко, тъй като във видеото много добре се разбира за какво става дума :) .
До тук беше лесната част :) .. На фрейм едно на сцената сложете следният код :

var count = 0;
var nextX:Number = 10;
var multi = 1;
var tekst:String = new String('asryhaogasorihgaosirnhg');
edno = setInterval(_root, "animaciika", 180);
function animaciika () {
var ime = "letter"+count;
var depth = this.getNextHighestDepth();
var bukvaAnim = this.attachMovie('anime', ime, depth);
bukvaAnim.bukva_mc.bukva_txt.text = tekst.charAt(count);
bukvaAnim._x = nextX;
bukvaAnim.bukva_mc.bukva_txt.autoSize = true;
bukvaAnim._y = 70*(multi/2);
if (nextX>Stage.width-40) {
nextX = 10;
multi++;
}
nextX += bukvaAnim._width;
count += 1;
if (count>tekst.length) {
clearInterval(edno);
tekst = a_txt.text="";
count = 0;
boo = true;
}
};

var count = 0; , var nextX:Number = 10; , var multi = 1; - Създаваме променливи. Count след на коя буква от изречението сме, nextX определя разстоянието между буквите, multi - на кой ред да са
var tekst:String = new String('Savage Президент!'); - това е изречението, чиите букви ще анимираме
edno = setInterval(_root, "animaciika", 180); - Правим setInterval така че функцията за анимиране на буквите да се изпълня през известно време. В случая 180 секунди
var ime = "letter"+count;
var depth = this.getNextHighestDepth();
var bukvaAnim = this.attachMovie('anime', ime, depth);
- използваме attachMovie за да извикаме клипче от библиотеката и да го 'сложим' на сцената. Новото клипче е с име 'ime' и всяко 'ime' съдържа една от буквите.
bukvaAnim.bukva_mc.bukva_txt.text = tekst.charAt(count); - с този ред задаваме всяко текстово поле на новото клипче да съдържа следваща буква от стринга tekst.
bukvaAnim._x = nextX; - редим буквите една след друга
bukvaAnim.bukva_mc.bukva_txt.autoSize = true; - избягваме някои проблеми с размера на текстовите полета :)
bukvaAnim._y = 70*(multi/2); - задаваме 'височината' на клиповете да е 70 по променливата multi. По долу следим къде се намират клиповете, и ако са 'извън' сцената ги сваляме с ред
if (nextX>Stage.width-40) {
nextX = 10;
multi++;
}
- точно с тази проверка следим разположението на клипчетата
nextX += bukvaAnim._width; - променливата която следи разстоянието м/у буквите се 'актуализира'
count += 1; - всеки път като се изпълни фунцкията тази тъй ключова променлива расте и определя развитието на анимацииката.
if (count>tekst.length) {
clearInterval(edno);
tekst = "";
count = 0; }
- и тъй като всяко нещо си има край, ако всички букви вече са анимирани спираме цялата магия.
Демо.
Фла файл.
Предполагам сте разбрали, че така можете да направите каквито си анимации искате. Успех.
Ако имате уроци питайте във форума.
Наздраве.





/ Трябва да сте регистриран за да напишете коментар /