function initLamp () {
// Инициализируем переменные, обозначающие верхнюю и нижнюю
// координаты лавовой лампы по оси Y.
top = 0;
bottom = 300;
// Создаем экземпляры клипа, содержащего пузырек.
numBubbles = 20;
for (i=0; i<numBubbles; 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};
}
}
Небольшие объекты можно создавать при помоши обычных скобок как видно из последней строки функции initLamp: bubbles [1]= {speed:0}. К содержанию таких объектов можно затем обратиться при помощи точечного синтаксиса: bubbles [0]. speed. При этом ваш код станет более разборчивым, а элемент переменной или массива, сможет состоять из нескольких частей. Например, вы можете записать строку myobject = {speed: б, weight: 40, clipname: "clip1"}, а затем для получения значений использовать синтаксис myObject.speed. Такой объект аналогичен структуре из языков высокого уровня, например С или Pascal.
// Перемещаем пузырьки,
function moveBubbles () {
for (i=0; i
// Узнаем текущую координату.
у = _root["Bubble"+i]._y;
// Останавливаемся, если достигнута нижняя граница
// объекта "лампа".
if
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
newBubble();
}
}
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;}
}
}