PDA

Просмотр полной версии : Таймер и возврат в нужный фрейм


wi4i
16.08.2008, 20:25
Вопрос такой:
Есть клип (256 кб.) (http://www.balkons.lv/flash/banner2.fla), в котором по идее должен последовательно выполняется следующий сценарий:
1. постепенно по появляются надписи и объекты
2. надписи и объекты висят без изменений некоторое время
3. надписи и объекты постепенно исчезают
4. выдерживается пауза (скажем, 2 сек).
5. клип проигрывается с начала

-Не могу правильно написать таймер по завершению клипа
- Клип проигрывается не сначала, Немогу разобраться, в чём дело.
Буду признателен, ели взглянете и поможете.

Alex Lexcuk
16.08.2008, 20:39
>>Буду признателен, ели взглянете и поможете.
Не смотрел, если анимация покадровая то на ТаймЛайне клацаете на последний кадр Ф9
и пишете код

stage.frameRate = 1;

затем добавляете еще два кадра к таймлайну insert frame
потом нажимаете мышкой на первый кадр F9

stage.frameRate = 12;//или сколько вам надо

Получится пауза в конце ролика 2 секунды

wi4i
16.08.2008, 20:56
Спасибо, так или иначе есть несколько "но"
- совет не совсем подходит, в клипе твины и вложенные объекты со своими таймлайнами.
- по поводу замедления фреймрейта - я что-то делаю не так, наверное. в мувиклипе, который надо замедлить, несколько слоев, есть отдельный для скрипта. Куда вставлять фреймы? в каком слое писать скрипт?

Собственно, потому и приложил ".fla" чтобы попредметней.

Alex Lexcuk
16.08.2008, 21:22
Скачал и посмотрел, ничего не понятно...
Надо его полностью переделать к основному таймлайну. В библиотеке оставить только нужные мувики, и сделать там векрную графику, будет весить не 256 кБ, а около 10, код встроенный в мувики убрать, т.к. я даже не понял где он вписан.

wi4i
16.08.2008, 21:31
- К основному таймлайну
Что имеется в виду?

etc
16.08.2008, 22:30
Скачал и посмотрел, ничего не понятно...
Надо его полностью переделать к основному таймлайну. В библиотеке оставить только нужные мувики, и сделать там векрную графику, будет весить не 256 кБ, а около 10, код встроенный в мувики убрать, т.к. я даже не понял где он вписан.
Запомните: AS3-код не пишут в кадрах клипов.

wi4i
16.08.2008, 22:56
Перефразирую вопрос:
может ли кто-нибудь помочь мне довести до ума эту флешку? Или кроме у меня другого выхода кроме как прилежно изучить мануалы по action script нет?
Для знающего скрипт человека - дело буквально минутное, для незнающего (имея в виду себя) - часы и дни изучения и практики.
Мне ведь просто нужно баннер на сайт повесить, я не хочу становится флэш-программистом.

Яски
17.08.2008, 15:31
В последнем кадре анимации напиши (в коде add)


// Останавливаем все мувики
callOnEachMovie(parent, "stop");
// Через две секунды запускаем сначала
setTimeout(callOnEachMovie, 2000, parent, "gotoAndPlay", [1]);

function callOnEachMovie(object:DisplayObjectContainer, func:String, args:Array = null):void {
if (object != null) {
var len:uint = object.numChildren;
for (var i:uint = 0; i < len; i++) {
var child:DisplayObjectContainer = object.getChildAt(i) as DisplayObjectContainer;
if (child != null) {
callOnEachMovie(child, func, args);
}
}
var movie:MovieClip = object as MovieClip;
if (movie != null) {
movie[func].apply(movie, args);
}
}
}

wi4i
17.08.2008, 17:17
Яски:
Спасибо большое, всё распрекрасно заработало.

Остаётся непонятным вот что:
Здесь говорят о том, что код в кадрах клипа не пишется, что его надо выносить в отдельный файл.
Ваш код, размещённый в последнем кадре клипа (в отдельном слое) отлично делает всё что требуется.
Значит, можно всё-таки код в кадрах располагать?

Яски
17.08.2008, 17:59
Если честно я не пишу код в Flash, а использую для этого Flex. Поэтому как и куда правильнее писать код я не знаю. Но могу сказать что:
1) Тяжело найти код - при изучении вашего исходника ушло много времени на то, чтобы понять, где и когда что происходит
2) Тяжело писать код - во флеше, даже в CS3 писать код нереально сложно, с автокомплитом и савтодополнением у меня ушло бы намного меньше времени.

DarkLight
17.08.2008, 18:18
Значит, можно всё-таки код в кадрах располагать?
Это крайне нежелательно. Весь код в кадрах все равно при компиляции конвертируется в класс (если интересно понять, как это все работает, чтоит погуглить про addFrameScript).

Т к CS3 как редактор кода неудобен, классы удобнее писать в бесплатном FlashDevelop, где имеется, в том числе, хороший автокомплит.

wi4i
17.08.2008, 18:20
Попробую глянуть, что это за флекс такой.
Ещё раз, спасибо все кто поучаствовал.