Показать сообщение отдельно
Старый 19.12.2005, 06:25
Vier вне форума Посмотреть профиль Отправить личное сообщение для Vier Посетить домашнюю страницу Vier Найти все сообщения от Vier
  № 1  
Ответить с цитированием
Vier

Регистрация: Sep 2004
Сообщений: 90
По умолчанию Програмная анимация.

такая штука:

нарисовано 3 квадратика и раскидано по сцене.

после события, рэндомом выбираю один из квадратиков и уменьшаю ему прозрачность.
Как только прозрачность этого квадратика меньше 50, рэндомом выбираю 1 из оставшихся 2-ух и уменьшаю прозрачность ему. Как только у второго меньше 50, случайно выбираю 3ий итд.

Вот код:
Код:
count=3;//количество квадратов
//контейнер
eff = this.createEmptyMovieClip("effect", 8);
this.effect._x = 469;
this.effect._y = 10;
//рисую квадратики
for (var i = 0; i<count; i++) {
	effect.createEmptyMovieClip("picEff"+i, 10+i);
	wayEff = eval("effect.picEff"+i);
	wayEff._x = places_x[i];
	wayEff._y = places_y[i];
	with (this.wayEff) {
		lineStyle(1, 0xffffff, 0);
		beginFill(0x2F84BC, 80);
		moveTo(0, 0);
		lineTo(42, 0);
		lineTo(42, 42);
		lineTo(0, 42);
		lineTo(0, 0);
		this.endFill();
	}
}
//Массив с неповторяющимся рэндомом
myRandom = new Array(count);
for (i=0; i<count; i++) {
	k = 0;
	while (k == 0) {
		k = 1;
		m = random(count);
		for (i1=0; i1<i; i1++) {
			if (myRandom[i1] == m) {
				k = 0;
			}
		}
	}
	myRandom[i] = m;
}
//пути к квадратикам
myEffects = new Array(count);
for (i=0; i<count; i++) {
	myEffects[i] = eval("effect.picEff"+myRandom[i]);
}

eff.onEnterFrame = function() {
	i=0;
	myEffects[i]._alpha -= 5;
	if (myEffects[i]._alpha<50) {
		myEffects[i+1]._alpha -= 5;
	}
	if (myEffects[i+1]._alpha<50) {
		myEffects[i+2]._alpha -= 5;
	}
	//стираю эффект
	if (myEffects[i+2]._alpha<=0) {
		this.removeMovieClip();
	}

};
Собственно, все работает. Но никак не могу сообразить как мне оформить функцию
Код:
eff.onEnterFrame = function() {
	i=0;
	myEffects[i]._alpha -= 5;
	if (myEffects[i]._alpha<50) {
		myEffects[i+1]._alpha -= 5;
	}
	if (myEffects[i+1]._alpha<50) {
		myEffects[i+2]._alpha -= 5;
	}
	//стираю эффект
	if (myEffects[i+2]._alpha<=0) {
		this.removeMovieClip();
	}
};
Чтобы не зависеть от числа квадратов.

Спасибо.