Вход

Просмотр полной версии : Проигрывание назад


gvay
29.01.2009, 21:39
Доброго времени суток.

есть мувик к примеру длинной 100 кадров , когда наводишь на мувик , он должен назад проиграть 3 кадра с текушего а после опять вернуться на текуший и продолжить проигрываться.

может кто подскажит как это реализовать?

Kuruki
29.01.2009, 21:57
function play3framesAndBack(){
var stopFrame = this._currentframe + 3;
this.onEnterFrame = function(){
if(this._currentframe == stopFrame){
delete this.onEnterFrame;
this.gotoAndPlay(this._currentframe - 3);
}
}
}
mc.onRollOver = play3framesAndBack;

gvay
29.01.2009, 22:33
спасибо! я скретч делаю нашел еще один вариант может кому понадобится

mc.onRollOver=function(){
var cx=_xmouse, cf=this._currentframe;
mc.onMouseMove=function(){
var f=cf+Math.round((_xmouse-cx)/this._width*this._totalframes);
f%=this._totalframes;
if(f<=0)f=this._totalframes+f;
this.gotoAndPlay(f);

}
}
mc.onRelease=mc.onReleaseOutside=function(){
delete this.onMouseMove;
}

Добавлено через 9 минут
function play3framesAndBack(){
var stopFrame = this._currentframe + 3;
this.onEnterFrame = function(){
if(this._currentframe == stopFrame){
delete this.onEnterFrame;
this.gotoAndPlay(this._currentframe - 3);
}
}
}
mc.onRollOver = play3framesAndBack;

чтото я не понял как его использовать, как прилипить то эту функцию к моему мувику?:rolleyes:

Kuruki
29.01.2009, 22:47
mc.onRollOver = play3framesAndBack;:)

gvay
29.01.2009, 22:50
:) в мувике получается пишем



onClipEvent (load){
mc.onRollOver = play3framesAndBack;
}
а саму функцию в экшн кадре?

Добавлено через 5 минут
:) тоесть в мувике пишем

onClipEvent(enterFrame){
mc.onRollOver = play3framesAndBack;
}

а саму функцию в экшн кадре?

Kuruki
29.01.2009, 22:55
Все нужно написать на главном таймлайне, а на сцене расположить ваш мувик и присвоить ему mc в поле Instance Name

gvay
29.01.2009, 22:57
сделал :) не работает :(

gvay
29.01.2009, 23:00
вот исходник

Kuruki
29.01.2009, 23:11
Работает. Внимательнее смотрите. Визуально после наведения проигрывается только 2 кадра, потомучто на 3-ем срабатывает условие и головка воспроизведения переходит назад, не отобразив при этом 3 кадр

gvay
29.01.2009, 23:17
точно :) спасибо еще раз

джонатан
30.01.2009, 10:42
Помоему вот так красивее:

my_mc.onRollOver = function() {
this.onEnterFrame = function() {
if(this._currentframe != 1) this.prevFrame();
else delete this.onEnterFrame;
}
}