Лесен action въпрос във флаш

Статус
Not open for further replies.

Gladiator6

Registered
Предполагам въпроса няма да затрудни някой който има идея но помогнете ми защото аз незнам :cry:
Първо : Направих си .swf но нали знаете докато не му кажете да спира не спира а аз не разбрам от action script-а на флаш.... Моля кажете ми как да направя така че като стигне до края на кадрите да спира за 5 секунди примерно и после отново да го пуска от първия кадър :) Благодаря не е сложно но нямам откъде да го прочета :( знам как да го спра но да го забавя незнам ...
Благодаря предварително
 
На последния кадър сложи следния код :
stop();
var timer:Timer = new Timer(5000);
timer.addEventListener(TimerEvent.TIMER, startOver);
timer.start();

function startOver(e:TimerEvent):void
{
timer.stop();
timer.removeEventListener(TimerEvent.TIMER, startOver);
gotoAndPlay(1);
}
 
Направих го по този начин благодаря :)

stop();
var timer:Timer = new Timer(5000);
timer.addEventListener(TimerEvent.TIMER, startOver);
timer.start();

function startOver(e:TimerEvent):void {
timer.stop();
timer.removeEventListener(TimerEvent.TIMER, startOver);
gotoAndPlay(1);
}


добре сега само да питам нещо ...
Може ли някой да ми обясни като на малумен какво по точно представлява това


Виждам че е таймер който отмерва 5000 милисекунди
ясно ми е и че timer.addEventListener прави нещо но какво ...
после
timer.start(); го пуска този таймер
след това startOver какво прави немога да схвана :D и изобщо някой може ли да ми го обясни благодаря интересно ми е смисъла къге е ...
 
Няма смисъл!
Просто там където анимацията приключва а (не спира )не ти трябва никакъв AS, а просто да завършва с KeyFrame (F6).

След него добавяш фреймове (F5) за колкото време ти трябва, т.е. няма да има анимация а времедиаграмата ще си тече по допълнителните фреймове които си сложил. Пример 12fps=12 фрейма в секунда т.е 5сек=5х12фрейма плеъра ще ги извърви за 5сек и сам ще се върне в началото.

===
Мисля че е по-добре за използване в случай че не разбираш AS.
Успех!
 
huanitomuerte каза:
Няма смисъл!
Просто там където анимацията приключва а (не спира )не ти трябва никакъв AS, а просто да завършва с KeyFrame (F6).

След него добавяш фреймове (F5) за колкото време ти трябва, т.е. няма да има анимация а времедиаграмата ще си тече по допълнителните фреймове които си сложил. Пример 12fps=12 фрейма в секунда т.е 5сек=5х12фрейма плеъра ще ги извърви за 5сек и сам ще се върне в началото.

===
Мисля че е по-добре за използване в случай че не разбираш AS.
Успех!

ИЕЕЕ а ако искам да ме връща 50 фрейма назад какво ще правя ще саздам същата анимация наново и ще си продължи напред но с новата анимация и пак няма да ми трябва AS ... то къде му е приложението като всичко ще правим бабината... Направих го с AS с се получи добре просто питам някой да обясни но аз си го разгадах вече ... ;) инче идеята да сложа празни фреймове само ще отежни историята ..
идеята ми е да го направя както трябва а не просто да работи ;)
 
Gladiator6 каза:
Направих го по този начин благодаря :)

stop();
var timer:Timer = new Timer(5000);
timer.addEventListener(TimerEvent.TIMER, startOver);
timer.start();

function startOver(e:TimerEvent):void {
timer.stop();
timer.removeEventListener(TimerEvent.TIMER, startOver);
gotoAndPlay(1);
}


добре сега само да питам нещо ...
Може ли някой да ми обясни като на малумен какво по точно представлява това


Виждам че е таймер който отмерва 5000 милисекунди
ясно ми е и че timer.addEventListener прави нещо но какво ...
после
timer.start(); го пуска този таймер
след това startOver какво прави немога да схвана :D и изобщо някой може ли да ми го обясни благодаря интересно ми е смисъла къге е ...



Обяснение :
stop(); спира анимацията да не почне отначало

var timer:Timer = new Timer(5000);
Съдаваме инстанция на класа Timer като даваме за параметър милисекундите, които да отборява. 1000 милисекунди = 1 секунда

timer.addEventListener(TimerEvent.TIMER, startOver);
timer.start();

Слагаме listener да слуша за събитието Timer ( функцията startOver) и стартираме таймера да отборява.
След 5 секунди вика функцията startOver


function startOver(e:TimerEvent):void {
timer.stop();
timer.removeEventListener(TimerEvent.TIMER, startOver);
gotoAndPlay(1);
}


Спираме таймера да не отборява ( анимацията може да е по дълга от 5 секунди, а ако продължи да отброява след 5 секунди пак ще извика функцията и пак ше върне на 1ви фрейм.
Съответно и махаме event listenera по същите съображения.

Накрая просто казваме на флаша да иде на първия фрейм и да пусне анимацията отново.
Като стигне до последния всичко това се повтаря.
 
Gladiator6 каза:
ИЕЕЕ а ако искам да ме връща 50 фрейма назад какво ще правя ще саздам същата анимация наново и ще си продължи напред но с новата анимация и пак няма да ми трябва AS ... то къде му е приложението като всичко ще правим бабината...
:D :D :D gotoAndPlay("50 фрейма назад")... Мислех че не разбираш от AS == явно съм сгрешил :?: SORY :D :D :D
 
Това с празните фреймове би го направил човек, който за втори път пуска флаш и знае само как да работи с фреймс и кийфреймс.
 
Статус
Not open for further replies.

Back
Горе