Создайте новый файл в программе Macromedia Flash установите размеры игрового поля 550 на 400 пикселей (меню изменить - документ). Сохраните свой, пока пустой проект в отдельной папке под именем "igra.fla".

На первом этапе нам нужно создать игровое поле 8 на 8 клеток, каждое поле которого может иметь два состояния - два цвета и к тому же реагировать на нажатие мыши. Для этого нам потребуется создать 64 квадратных кнопки, нажимая на которые мы будем передавать в компьютер координаты нашего хода. Кроме того, нам нужно создать 64 квадрата, которые будут располагаться поверх кнопок и то заслонять собой кнопки, то давать возможность видеть их. Каждый квадратный символ должен иметь уникальное имя, чтобы к ним можно было обратиться программно и изменить его видимость с 1 (видим) на 0 (прозрачен).

В принципе можно все символы нарисовать отдельно, но это слишком утомительно, мы поступим иначе и создадим их программно. Для этого нарисуйте квадрат, например голубого цвета ЗА ПРЕДЕЛАМИ игрового поля. В моем случае я задал размеры квадрата в 30 пикселей. Конвертируйте квадрат в символ типа кнопка.

Для конвертирования рисунка в символ библиотеки вам нужно выделить квадрат, и выполнить следующую команду: меню вставка - конвертировать в символ, после нужно задать имя символа и выбрать тип "кнопка поля" картинка.

Для того чтобы дублировать этот символ у него должно быть имя на основной сцене. Задайте его имя kn. Имя задается в окне "Свойства", поле "Имя копии" (Рисунок 8):

Задание имени символа, по которому к нему можно будем обращаться программно
Рис. 8. Задание имени символа, по которому к нему можно будем обращаться программно.

Аналогично ЗА ПРЕДЕЛАМИ игрового поля создайте квадрат другого цвета, например желтого. Его размеры, должны совпадать с размерами кнопки, в нашем случае 30 пикселей. Конвертируйте его в символ типа "клип" и также на основной сцене дайте ему имя pl.

Очень важный прием, при разработке проекта состоит в том, чтобы размещать весь программный код на отдельном слое. Для этого создайте новый слой на монтажном столе, дайте ему имя "Действия". В первом ключевом кадре добавьте идущий ниже программный код. Цифры приведены для того, чтобы легче было обсуждать приведенный код и давать комментарии, при наборе добавлять их не надо. Все команды можно либо набирать вручную, либо выбирать из списка команд, находящегося в левой части окна. К используемым командам мною будут даваться синтаксис и краткие комментарии. Так как приведенный ниже код, это не все, что нам потребуется написать в первом ключевом кадре, в конце статьи, приведены полные листинги кода, как это сделано у меня в программе. Сделано это для того, чтобы вы могли увидеть весь код в одном месте.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
k = 1;
l = getProperty(kn, _height);
for (i=1; i<=8; i++) {
for (j=1; j<=8; j++) {
duplicateMovieClip("kn", "kn"+String(i)+String(j), k++);
setProperty("kn"+String(i)+String(j), _x, j*(l+2)+30);
setProperty("kn"+String(i)+String(j), _y, i*(l+2)+60);
}
}
for (i=1; i<=8; i++) {
for (j=1; j<=8; j++) {
duplicateMovieClip("pl", "k"+String(j)+String(i), k++);
setProperty("pl"+String(j)+String(i), _x, j*(l+2)+30);
setProperty("pl"+String(j)+String(i), _y, i*(l+2)+60);
setProperty("pl"+String(j)+String(i), _visible, 0);
}
}

Давайте проанализируем данный фрагмент. Первые две строчки задают две переменные: k и l. Первая переменная нужна для задания слоя объекта (строки 5 и 12). Вторая определяет линейный размер символа, его высоту.

Для задания переменных в окне "Действия кадра" выполните следующие действия:Actions - Variables - set variables. Синтаксис команды:
имя переменной = значение или вычисляемое выражение;
Если значение переменной взято в кавычки - это строковая переменная, если кавычек нет, (установлен флажок в поле выражение), то переменная числовая.

Для переменной l используется выражение getProperty(kn, _height). Эта команда определяет высоту символа kn. Это нужно для взаимного расположения отдельных символов (строки 6, 7, 13 и 14).

Строки кода с 4 по 9 - это два цикла с параметром, причем второй вложен в первый. Благодаря вложению осуществляется перебор всех пар переменных i и j, каждая из которых изменяется от 1 до 8, это индексы объектов.

Для задания цикла выполните следующие действия: Actions - Conditions/Loops - For.
Команда организует цикл с заданным количеством повторений. Синтаксис команды:
for (начальное значение переменной; конечное значение переменной; шаг) {
тело цикла
}

Телом цикла, то есть теми командами, которые выполняются несколько раз, являются строки 5, 6 и 7. Строка 5 содержит команду duplicateMovieClip().

Окно "Действия кадра" Actions - Movie Clip Control - duplicateMovieClip. Команда дублирует символ, дает ему новое имя и помещает на отдельный слой. Синтаксис команды:
duplicateMovieClip ("имя дублируемого символа", "новое имя", номер уровня);

Команда дублирует клип с именем kn, и дает каждому новому экземпляру уникальное имя. Имя строится выражением "kn"+String(i)+String(j). Это - конкатенация, соединение строк, к символу kn добавляется значение переменной i, превращенное в символ командой String() и добавляется значение переменной j, также преобразованное к символьному виду. Новый символ с именем kn11 помещается на новый слой, в данном случае на второй (т.к. первоначальное значение k=1 увеличивается на единицу командой k++).
Команды в строках 6 и 7 перемещают вновь созданный символ в заданную точку окна программы с помощью команды setProperty().

Окно "Действия кадра" Actions - Movie Clip Control - setPropertry. Команда изменяет различные свойства символа, такие как координата (_x, _y), высота, ширина (_height, _width), прозрачность (_alpha), видимость (_visible) и др. Синтаксис команды:
setProperty ("имя символа", изменяемое свойство, новое значение свойства);

Первая команда изменяет у символа координату x (_x), а вторая координату y (_y). В команде задается имя изменяемого символа. Для того, чтобы перебрать все возможные символы, это имя задается выражением "kn"+String(i)+String(j), его смысл описывался выше для предыдущей команды. Выражение j*(l+2)+30 определяет новую координату символа. Координата вычисляется через номер символа (j) и его длину (переменная l). Обратите внимание на выражение l+2, благодаря ему, символы будет находиться на расстоянии двух пикселей и не будут сливаться друг с другом. Прибавление числа 30 в описываемом выражении приводит к смещению всех символов на 30 пикселей от края окна.

Строки кода с 10 по 15 осуществляют дублирование символа pl и размещение всех дубликатов, в те же координаты, что и дублированные кнопки (подробно разобранные нами строки кода с 3 по 9). Так как строки с 10 по 15 располагается позже кода, дублирующего кнопки, дублированные объекты будут НАД кнопками. Это важно, так как поля (дубликаты объекта pl) другого цвета, нежели кнопки (дубликаты объекта kn). Поля будут менять свою видимость то открывая, то заслоняя собой кнопки, и тем самым формируя узор.

Строка 15 изменяет видимость дубликатов символа pl, делает их равным нулю. В начальный момент времени все дубликаты не видны.

что должно получиться:
Вы можете на этом этапе сохранить и протестировать ваш проект. У вас должно формироваться игровое поле - 64 квадратика голубого цвета расположенные в 8 строк и 8 столбцов. Под квадратиками располагаются кнопки, это заметно при наведении на них мыши, курсор должен менять свою форму.