PDA

Просмотр полной версии : Реверс


greep
26.09.2009, 21:59
Читаю faq из раздела AS2, чтобы не доставать глупыми вопросами... Но не все бывает доходчиво объяснено... Заинтересовала тема реверса. Почитал (http://www.flasher.ru/forum/showthread.php?threadid=51205) Но тут совсем не ясно что и от чего. Анимация в руте и все работает, но как сделать обратное воспроизведение в мувиклипе? Объясните пожалуйста или покажите где почитать... Заранее благодарен.

kichSman
26.09.2009, 22:47
Читаю faq из раздела AS2, чтобы не доставать глупыми вопросами... Но не все бывает доходчиво объяснено... Заинтересовала тема реверса. Почитал (http://www.flasher.ru/forum/showthread.php?threadid=51205) Но тут совсем не ясно что и от чего. Анимация в руте и все работает, но как сделать обратное воспроизведение в мувиклипе? Объясните пожалуйста или покажите где почитать... Заранее благодарен.

тут самое главное булевые переменные true или false, расположение которых зависит от вас самого, но ссылаться на них нужно точно.

Дальше, в клипе, который должен реагировать на действия пользователя, на покадровую прослушку (читать, как повторение), т.е. на onEnterFrame указать условие, в котором, указать, если true то нужный клип проигрывается вперед, если лож (false) то назад

Ах да, на самой кнопе нужно указать когда она будет устанавливать true или false

greep
27.09.2009, 13:22
В топике про реверс был пример с анимацией в руте. Незамысловатый скриптик позволяет двигать таймлайн вперед при наведении на кнопку и обратно при сведении.


MovieClip.prototype.rev = function() {
this.onEnterFrame = function(){
if (go and this._currentframe<this._totalframes) {
this.nextFrame();
}
if (!go and this._currentframe>1) {
this.prevFrame();
}
}
}
this.rev();


Очевидно, что весь смысл этого скрипта в этой строке MovieClip.prototype. Не подскажете как тот же фокус сделать с мувиклипом?

Mnilionic
27.09.2009, 17:29
я вот такой класс для этих дела написал.
добавились методы:

forward(); - плей в перёд
back(); - плей назад
gotoAndBack(frame); - переход на кадр и плей назад
gotoAndForward(frame); - переход на кадр и плей вперёд

при использовании этих методов отрабатывают события:
onFirstFrame:Function;
onLastFrame:Function;

greep
27.09.2009, 17:36
А как приказать мувиклипу играться обратно? К примеру из рута?

Mnilionic
27.09.2009, 17:52
my_clip.back();

greep
27.09.2009, 21:39
Компилятор ругается... Classes may only be defined in external ActionScript 2.0 class scripts.

Mnilionic
27.09.2009, 21:56
Сделай, что просит компилятор.

greep
27.09.2009, 23:13
Я нуб честно говоря... Он просит еще какой-то класс? Чего же ему не хватает?

Добавлено через 7 минут
Classes may only be defined in external ActionScript 2.0 class scripts.
Классы могут бытлько во внешних файлах АС 2.0... Ну он во внешнем файле... Так я его добавлял...


#include "MovieClipPlayBack.as"

mooncar
28.09.2009, 01:01
Классы нужно не инклудить, а импортировать.
Попробуйте
import MovieClipPlayBack;
А сам файл с классом положите в той же папке.

KiL33
28.09.2009, 12:15
Вот тоже как то делал, без класса, и без мозгов..но всё же
http://flasher.ru/forum/showthread.php?t=124897&highlight=_currentframe

С кратностью в пять кадров анимация проигрывается вперед и также назад.

Только необходимо код в исходнике заменить ниже идущим в той теме посте.

greep
28.09.2009, 17:15
Спасибо большое! Просто огромное!!!

KiL33
28.09.2009, 17:22
Я посмотрел пример Mnilionic'a и посоветовал бы использовать его:)

greep
28.09.2009, 22:47
не работает...

Mnilionic
28.09.2009, 23:37
не нужно импортировать класс.
Кладёшь класс в туже папку, что и прект.
Создаёшь мувик с анимацией.
В библиотеке щёлкаешь правой клавишей мышки по этому мувику и выбираешь пункт linkage.
В поле Class 2.0 вписываешь имя класса. В данном случае MovieClipPlayBack.

Теперь все экземпляры этого клипа имеют свойства и методы этого класса.

greep
29.09.2009, 02:20
Ясно! Спасибо большое. Скажите, а есть какие-нить ресурсы со всякими полезными классами? С удовольствием взял бы на вооружение?)

KiL33
29.09.2009, 08:03
Если класс всё же импортировать
import MovieClipPlayBack;
то обращаться к функциям можно следующим образом

btn.onPress=function(){
mc.__proto__ = MovieClipPlayBack.prototype;
mc.forward()
}
btn2.onPress=function(){
mc.__proto__ = MovieClipPlayBack.prototype;
mc.back()
}

Royerder
04.10.2009, 14:50
Спасибо, всё получилось, вот только если использовать классовые команды, то мувик не останавливается на прописанном stop(); внутри мувика.
Как лечить?

Mnilionic
05.10.2009, 00:26
this.stop();

greep
07.12.2009, 17:24
Эхх, отличный класс!