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 () {