Форум 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=67370)

vstorm 01.08.2005 14:11

проиграть мув клип с конца в начало
 
есть возможности в AS
flash 5.0
заранее благодарен!

iNils 01.08.2005 14:22

на клип с анимацией ставишь код
Код:

onClipEvent (enterFrame) {
        if (this._currentframe == 1) {
                this.gotoAndStop (this._totalframes);
        } else {
                this.gotoAndStop (this._currentframe - 1);
        }
}

В самом клипе в первом кадре ставишь stop();

Whatsername 01.08.2005 14:36

Очевидно, что stop() в первом кадре нужен для того, чтобы не прорисовывать этот кадр. Только мне не понятно как это работает, ведь есть проверка
Код:

this._currentframe == 1
дающая при выводе первого кадра true. И есть подынструкция
Код:

this.gotoAndStop(this._totalframes)
напрявляющая головку в последний кадр, не прорисовывая настоящий.

iNils, разреши, пожалуйста, этот казус в моей голове.

iNils 01.08.2005 14:47

Вложений: 1
В примере есть клип с анимацией на 6 кадров.
Если убрать stop то последовательность кадров 1 6 5 4 3 2 1 6 ....
Со stop 6 5 4 3 2 1 6 ....

Король 01.08.2005 14:49

Цитата:

Сообщение от Whatsername
Очевидно, что stop() в первом кадре нужен для того, чтобы не прорисовывать этот кадр.

интересная теория

iNils 01.08.2005 14:51

На самом деле без stop сразу начинается проигрываение ролика и код проверки срабатывает только на втором кадре. Это можно увидеть если вставить trace(this._currentframe) перед if (this._currentframe == 1) {.

D12 01.08.2005 23:39

Вложений: 1
годится ???? ;)

Whatsername 02.08.2005 12:12

Цитата:

Сообщение от iNils
вставить trace(this._currentframe) перед if (this._currentframe == 1) {.

Это работает. Спасибо за ответ. Но я таки не вникаю. Сперва выполняется код _root, потом клипа, потом обработчика события клипа. Затем кадр рисуется. Так?

UPD: а еще твой исходник без *.fla, но все равно спасиба =)

iNils 02.08.2005 12:39

Цитата:

Сообщение от Whatsername
Сперва выполняется код _root, потом клипа, потом обработчика события клипа. Затем кадр рисуется. Так?

Легко проверить. В руте пишешь trace ("root1"), слоем ниже клип с кодом onClipEvent(load){trace("clipEvent")} и еще слоем ниже trace ("root2"). Внутри клипа trace ("clipInside"). Запускаешь и смотришь последовательность.
Цитата:

а еще твой исходник без *.fla, но все равно спасиба =)
Бывает :)

Fokker 02.08.2005 14:54

2 D12
фигурные скобочки забыли поставить в if
не понял что такое
go и !go разъясните плиз....

2 iNils
умом понимаю,что код верен и должен работать...но на практике не фига у меня не работает (почему-то)..может скинете fla шку


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

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