Лавовая лампа
// Перемещаем пузырьки, function moveBubbles() { for (i = 0; i // Узнаем текущую координату. y = _root["Bubble" + i]._y; // Останавливаемся, если достигнута нижняя граница // объекта "лампа". if ((bubbles[i].speed > 0) and (y > bottom)) { bubbles[i].speed = 0; // Останавливаемся, если достигнута верхняя граница // объекта. } else if ((bubbles[i].speed < 0) and (y < top)) { bubbles[i].speed = 0; // Продолжаем перемещать пузырьки. } else { // Перемещаем. _root["Bubble" + i]._y = y + bubbles[i].speed; // Изменяем размеры пузырька. height = _root["Bubble" + i]._yscale; width = _root["Bubble" + i]._xscale; if (height > width) height -= 1; _root["Bubble" + i]._yscale = height; // Создаем новый пузырек с вероятностью 1/30. if (Math.random() * 30 <= 1) { newBubble(); } } }Функция newBubble проверяет массив bubbles на наличие неиспользуемых мест для пузырьков. Затем она создает пузырек в нижней или верхней части лампы. Размер пузырька задается случайным числом. Его длина в три раза больше, чем ширина. По мере перемещения пузырька эта разница постепенно исчезает.
function newBubble() { for (i = 0; i < numBubbles; i++) { // Находим пустое место для пузырька, if (bubbles[i].speed == 0) { // Создаем пузырек в верхней части лампы. if (Math.random() < .5) { bubbles[i].speed = 1; _root["Bubblen" + i]._y = -40; // Создаем пузырек в нижней части лампы. } else { bubbles[i].speed = -1; _root["Bubble" + i]._y = 340; } // Устанавливаем размер пузырька. size = 40 + Math, random() * 40; _root["Bubble" + i]._xscale = size; _root["Bubble" + i]._yscale = size * 3; _root["Bubble" + i]._x = 10 + Math.random() * 80; // Готово. break; } } }Три вышеприведенные функции составляют основу ролика Lava Lamp который вы можете просмотреть, запустив файл Lavalamp.fla.
Другие возможности
Изображение стекла было создано аналогично пузырькам. Благодаря применению свойства альфа-прозрачности сквозь него видны пузырьки Для того чтобы ролик вписывался в ваш сайт или проект, вы можете украсить его своим логотипом.
