Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 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();
	}
};
Чтобы не зависеть от числа квадратов.

Спасибо.

Создать новую тему   Часовой пояс GMT +4, время: 10:45.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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