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

IrInKa 26.12.2012 15:54

Как удалить анимацию?
 
Подскажите пожалуйста как удалить анимацию и продолжить выполнение клипа.
У меня следующая проблема: Есть струя воды, которая выливается из брансбойта, она должна течь на протяжении 25 кадров, а затем исчезнуть совсем, при этом ролик продолжается дальше.
Мне удалось остановить струю воды, но она так в замершем состоянии и остается в кадре.
В первом кадре следующий код:
Код AS1/AS2:

// Переменная, хранящая текущее время
var t:Number = 0;
// В прототипе конструктора MovieClip определяем метод обработчика событий. Этот метод будет унаследован всеми экземплярами клипов
MovieClip.prototype.onEnterFrame = function() {
        // В струе воды должны участвовать только клипы, представляющие капли, т.е. клипы, имя которых будет начинаться с букв "mc"
        if (this._name.substr(0, 2) == "mc") {
                // Горизонтальное смещение
                                this._x = Math.round(Math.random() * 314);
                // Вертикальное положение
                                this._y = 32;
                // Приращение времени
                t += 0.1;
                // При выходе капли за пределы рабочей области
                if (this._y > 60 || this._x > 468 || this._x < 0) {
                        // Вновь помещаем каплю вправо
                        this._y = 32;
                        // Позиционируем каплю по горизонтали
                        this._x = 314;
                        }
        }
};
// Создаем капли и размещаем их в случайных координатах по вертикали и по горизонтали
for (var i = 0; i < 100; i++) {
        this.attachMovie("mc", "mc" + i, i, {
                                        _x:Math.round(Math.random() * 468),
                                        _y:Math.round(Math.random() * 60)
                                                                                        });
        // Задаем каплям случайные размеры
        this["mc" + i]._xscale = this["mc" + i]._yscale = Math.round(Math.random() * 20 + 20);
        // Для каждой капли определяем скорость ее истекания, исходя из ее размера и добавляя элемент случайности
        this["mc" + i].speed = this["mc" + i]._xscale / (Math.random()*5 + 10);
        // Для каждой капли сохраняем ее начальную горизонтальную координату
        this["mc" + i].initX = this["mc" + i]._x;
                // Для каждой капли устанавливаем степень прозрачности, исходя из е размера
        this["mc" + i]._alpha = this["mc" + i]._xscale;
        }

В 25 кадре следующий код

Код AS1/AS2:

delete MovieClip.prototype.onEnterFrame;



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

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