Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Переход с последнего фрэйма на первый и обратно (http://www.flasher.ru/forum/showthread.php?t=97254)

m13 16.06.2007 23:39

Переход с последнего фрэйма на первый и обратно
 
Может быть не совсем корректно указал тему сообщения, но всёже.
Суть такая:
Нужно сделать эффект панорамы (да-да, опять она). Данный эффект я решил делать путём перемещения фона на ключевых кадрах, а промежуточные генерируются при помощь Motion Tween, таким образом при наведении курсора на правую кнопку - начинается проигрывание ролика вперёд, при наведении курсора на левую кнопку ролик проигрывается назад. НО дойдя до крайнего кадра (первого или последнего) - возможно только начать прокрутику мувика в противоположную сторону. Хотелось бы чтобы дойдя до последнего кадра при активной кнопке флэш не пытался перейти на следующий кадр (которого нету), а переходил на первый (и наоборот для первого кадра).
Вообщем хотелось бы сделать эффект вращения камеры изнутри целиндра, на котором расположен фон (эт меня в 3Д макс понесло :) ).

Надеюсь на Вашу помощь в реализации кругового проигрывания мувика, дойдя по последнего кадра которого флэш начинал бы проигрывать его с первого кадра (при активированной кнопке).

Исходник тут: http://www.sendspace.com/file/p3yya9 .
По исходнику - необходимо чтобы при нажатии на правый розовый квадратик фон непрерывно проигрывался и после цыфры 9 с зелёным фоном появилась еденичка на голубом фоне (а не останавливалась как сейчас), и наоборот для первого кадра (переходя с 1 сразу на 9 а потом 8,7,6 и т.д.)

Думаю понятно изложил суть проблеммы.
Зарание спасибо за помощь.

Poohorik 17.06.2007 00:13

Ну если я правильно понял суть, то просто поставь в последний кадр клипа mc:
Код:

gotoAndPlay(1);

m13 17.06.2007 00:39

Я так пробывал...но это оказалось слишком банально...в таком случае работает безостановочная прокрутка только в одном направлении...
Тогда как сделать так чтобы с первого кадра можно было бы попасть на последний?
Насколько я понимаю - надо играться с главным скриптом (слоя RollOver), чтобы в нём при значении текущего кадра 1 предыдущий кадр стал последним (в данном случае 640), а следующий кадр последнего - первый. Но реализовать это мне пока что не получилось..:(

BigDan 17.06.2007 00:40

Обратное проигрывание клипа.

m13 17.06.2007 15:46

BigDan, тут те же яйца только в профиль...
В этом примере он при рпоигрывании назад после того как вернулся на первый кадр на последний не переходит, а мне нужна именно эта финкция, чтобы с первого мог добраться сразу на послдений и с последнего на первый...
Насколько я понял используемый мною скрипт - там надо поставить условие, если текущий фрэйм = 1 то при активации левой кнопки мувик перейдёт на последний, а потом уже как обычно на предыдущие, а если при активации правой кнопки текущий фрэйм = последнему кадру, то вместо того чтобы пытаться перейти на следующий кадр (которого нету) мувик перейдёт на первый и дальше по увеличению номера фрэйма.

Вот используемый мной секйчас скритп (найденный тут же на форуме и чуток подправленный):

Код:

//ваш мувиклип
var mc:MovieClip
//кнопка 'вперед'
var btf:MovieClip
//кнопка 'назад'
var btb:MovieClip
//ваш максимальный кадр
var fr:Number
//
btb.onRollOver = function():Void {
        mc.onEnterFrame = function():Void {
                mc._currentframe == 1 ? delete mc.onEnterFrame : mc.prevFrame();
        };
};
btf.onRollOver = function():Void {
        mc.onEnterFrame = function():Void {
                mc._currentframe == fr ? delete mc.onEnterFrame : mc.nextFrame();
        };
};
btf.onRollOut = btf.onReleaseOutside=btb.onRollOut=btb.onReleaseOutside=function ():Void {
        mc.stop();
        delete mc.onEnterFrame;
};

Надеюсь теперь ещё понятней изложил...а пока бегу в магазины за книгой...:away:

ВОПРОС ОСТАЛСЯ ОТКРЫТЫМ...НЕЛП

310 18.06.2007 10:34

В клипе в первом кадре написал gotoAndPlay (639);
В 639-м соответственно stop ();
Ну а в 640-м gotoAndPlay (2);
Шаманство )))

Ведьмак 18.06.2007 19:31

есть такая штука:
_totalframes

т.е. если дошел до первого кадра, то
Код:

_root.gotoAndStop(_root._totalframes)
PS: хотя лучше бы сделать чисто на работе с _x (понадобиться один attachMovie, один removeMovieClip, пара If, и onEnterFrame)

m13 18.06.2007 23:39

Ведьмак, Хорошо говоришь...тока меня новичка запутал... Не мог бы отредактирывать приложенный мной файл с импользованием этой штуки и приаттачить сюда же?
Просто названия команд я то знаю, но вот что и как соеденить, для получения эффекта - пока туговато :(

Мыкыта 19.06.2007 12:59

m13, зайдите сюда www.intuit.ru там есть уроки по экшену с примерами

Ведьмак 19.06.2007 17:54

Если по простому, то где то так это должно выглядеть:

Код:

mc.stop();
rev.onRollOver = function() {
        mc.onEnterFrame = function() {
                mc._currentframe == 1 ? mc.gotoAndStop(mc._totalframes) : mc.prevFrame();
        };
};
ff.onRollOver = function() {
        mc.onEnterFrame = function() {
                mc._currentframe == mc._totalframes ? mc.gotoAndStop(1) : mc.nextFrame();
        };
};

rev.onRollOut = function() {
        mc.stop();
        delete mc.onEnterFrame;
};

ff.onRollOut = function() {
        mc.stop();
        delete mc.onEnterFrame;
};


m13 19.06.2007 19:00

Ведьмак, Огромнейший сенкс!!! Выручил!!!
Нечто подобноя я и сам пытался накалякать, но без ошибок не обходилось :(
Теперь то я понял где собака была зарыта :)


Часовой пояс GMT +4, время: 15:22.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.