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

petrochenko1981 23.03.2006 18:26

Как запустить эту функцию для нескольких мувиков
 
У меня есть на глвном поле три клипа и есть функция, которая меняет у них alpha по синусойде. Как сделать так, чтобы эту функцию можно было бы применять для всех клипов. Почемуто она применяется только для одного мувика, а для других не канает. Помогите плиииииииз.

mc_3._alpha = 100;
var speed = 30;

function test(out:Boolean) {
param = mc_3._alpha;
checks=0;
var interval = setInterval(function () {
if (out)
{
if ((mc_3._alpha < 100)&&(checks<>1)){
param++;
} else {
param--;
}
if (param>=100) {
checks=1;
}
if (param<=0) {
checks=0;
}

n=(param/100)*(Math.PI/2);
param1=Math.sin(n)*100;
mc_3._alpha = param1;
}
}, speed);
}
Вот так вот её запускаю.
test(true);

Если прописать всё тоже самое для второго мувика, то почемуто работает только на первом мувике. На второй она забивает.

Andromed 23.03.2006 19:06

используй prototype, и ты не правильно используешь метод setInterval, кто ее за тебя останавливать будет, я особо не разбирался как у тебя считается прозрачность, используй как основу
Код:

mc1.speed = 1;
mc2.speed = 2;
mc3.speed = 3;
MovieClip.prototype.test = function() {
        this.interval = setInterval(function (mc:MovieClip) {
                mc._alpha -= mc.speed;
                if (mc._alpha<=0) {
                        clearInterval(mc.interval);
                }
        }, this.speed, this);
};
mc1.test();
mc2.test();
mc3.test();



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

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