function initLamp {
// Инициализируем переменные, обозначающие верхнюю и нижнюю
// координаты лавовой лампы по оси Y.
top = 0;
bottom = 300;
// Создаем экземпляры клипа, содержащего пузырек.
numBubbles = 20;
for (i=0; i
attachMovie("bubble", "Bubble"+i, i);
}
// Дублируем изображения стекла, низа и верха лампы, чтобы
// они оказались над пузырьками.
duplicateMovieClip("Glass", "Glass", i++);
duplicateMovieClip("Top", "Top", i++);
duplicateMovieClip("Bottom", "Bottom", i++);
// Создаем объекты, содержащие значение скорости пузырьков.
bubbles = new Array;
for (i=0; i
bubbles[i] = {speed:0};
}
}После того как все элементы подготовлены, воспроизведение ролика осуществляется по следующему принципу: время от времени вызывается функция, которая обновляет местоположение пузырьков и создает новые. Клип, расположенный за пределами рабочего поля, вызывает функцию moveBubbles в каждом событии enterFrame. Функция moveBubbles задает перемещение пузырьков вверх или вниз и их остановку в верхней или нижней части ролика, а также в одном случае из 30 вызывает функцию newBubble для создания нового пузырька.
Примечание
Небольшие объекты можно создавать при помощи обычных скобок, как видно из последней строки функции initLamp: bubbles [i] = {speed:0} . К содержанию таких объектов можно затем обратиться при помощи точечного синтаксиса: bubbles[0].speed. При этом ваш код станет более разборчивым, а элемент переменной или массива сможет состоять из нескольких частей. Например, вы можете записать строку myObject = {speed: 6, weight: 40, clipname: «clip1»}, а затем для получения значений использовать синтаксис myObject. speed. Такой объект аналогичен структуре из языков высокого уровня, например C или Pascal.
// Перемещаем пузырьки.
function moveBubbles {