Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Action script 2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=49)
-   -   остановка проигрывания клипа при достижении метки (http://www.flasher.ru/forum/showthread.php?t=54442)

wwwita 05.02.2004 23:12

остановка проигрывания клипа при достижении метки
 
возможна ли остановка проигрывания клипа по достижении метки в нем?

вопрос на самом деле очень старый просто ответа я до сих пор не нашел, а лишние stop(); смущают....

opex 06.02.2004 03:22

что то я тебя не очень понял в кадр stop() поставь и все будет ок остановится твой клип ну а если захотел схкерить то моеш так остонавить
Код:

_root.onEnterFrame = function() {
        if (_root._currentframe == 10) {
                stop();
        }
};


wwwita 06.02.2004 12:12

орех, нет, здесь речь шла именно об остановке при достижении метки, а не номера кадра.

у меня получилось:

Код:

function movieControl(bTarget, bLabel) {
        bTarget.gotoAndStop(bLabel);
        temp = bTarget._currentframe;
        bTarget.gotoAndPlay(1);
        this.createEmptyMovieClip("playClip", 103);
        playClip.onEnterFrame = function() {
                if (bTarget._currentframe == temp) {
                        bTarget.stop();
                }
        };
}

метод называется "через ж#пу"... но как ни странно работает. проверял на мувике черного цвета на белом фоне, на весь экран, никаких скачков не заметил *здесь оговорка - комп не слабый*.

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

Jlekc 06.02.2004 17:30

а если так
Код:

MovieClip.prototype.onLabelStop = function (label) {
        var _currFr = this._currentframe;
        this.gotoAndStop (label);
        var _labelFr = this._currentframe;
        this.gotoAndPlay (_currFr);
        this.onEnterFrame = function () {
                _labelFr == this._currentframe ? this.stop () : undefined;
        };
};

что скажиш ??

Jlekc 06.02.2004 17:41

спрости вот так
Код:

MovieClip.prototype.onLabelStop = function (label) {
        this.gotoAndStop (label);
        var _labelFr = this._currentframe;
        this.gotoAndPlay (1);
        this.onEnterFrame = function () {
                _labelFr == this._currentframe ? this.stop () : undefined;
        };
};

нормальный метод, просто вызывать
myMovieClip.onLabelStop("myLabel")

wwwita 06.02.2004 22:10

Jlekc, так это вариации на тему.. технология таже, сначала шагаем по метке а потом шустро обратно....

просто я думал может есть, что-нибудь более компактное, если можно так выразится...

Jlekc 09.02.2004 12:35

а в чем проблема? рендер этого скачка не происходит, пару лишних строк - проблема, разве тока с естетической точки зрения

wwwita 13.02.2004 02:09

Да нет :-) Тут дело совсем не в этом было. Просто думал что есть какая-нибудь функция, а я её не знаю.
Ну как пример можно привести наверное getBounds, пока я её не знал - писалась комбинация localToGlobal _width'ы и т.п., что в итоге конечно давало результат, но через что... :-)

Jlekc 13.02.2004 12:02

Будем работать через.... :(


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

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