for (i=0; i // Узнаем текущую координату. o = _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 // Находим пустое место для пузырька. if (bubbles[i].speed == 0) { // Создаем пузырек в верхней части лампы. if (Math.random() < .5) { bubbles [i].speed = 1 ; _root["Bubble"+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 на Web-сайте.
Другие возможности
Изображение стекла было создано аналогично пузырькам. Благодаря применению свойства альфа-прозрачности сквозь него видны пузырьки. Для того чтобы ролик вписывался в ваш сайт или проект, вы можете украсить его своим логотипом.
Игра" Жизнь"
Исходный файл: gameoflife.fla
Игра "Жизнь" известна как результат серьезных разработок в области искусственного интеллекта и одновременно как популярная игра. Она была изобретена математиком Джоном Конвэйем и приобрела известность благодаря опубликованной в 1970 году статье в журнале "Scientific American". Вскоре после этого игра стала чрезвычайно популярной среди программистов.
Выглядит все очень просто – в ячейки сетки на игровом поле помещается произвольный набор точек. На очередном шаге игры содержание каждой ячейки сетки подвергается преобразованиям согласно определенному набору правил. Если данная ячейка содержит точку и в прилегающих к ней ячейках находится две или три точки, то содержимое данной ячейки остается без изменений. Если в прилегающих ячейках содержится меньше двух точек, то точка в данной ячейке "умирает" от одиночества, а если больше трех, то точка "умирает" от тесноты. Если же данная ячейка пуста и в прилегающих ячейках содержится ровно три точки, то в данной ячейке "рождается" новая точка.
Вот и все правила, которые вам нужны. Результаты могут оказаться удивительными. Попробуйте запустить исходный файл. Создайте колонию точек подобно изображенным на рис. 6.15 и нажмите кнопку Run.
Рисунок 6.15.
Задача проекта