Определение номера проигрываемого кадра

Свойство _currentframe

Cвойство _currentframe хранит номер текущего кадра.

switch (this._currentframe) {

case 1: trace("Клетка пуста"); break;

case2: trace("В клетке крестик"); break;

case 3: trace("В клетке нолик"); break;

}

Обработка хода в игре

Обработчик события нажатия клетки (onPress) для каждой клетки один и тот же. Придется писать одну и ту же функцию несколько раз.

c00_mc.onPress=function() {…}

c22_mc.onPress=function(){…}

Если бы обработчики создавались как сценарии клипов, то другого варианта не было бы. Но при создании обработчиков-методов можно написать именованную функцию, содержащую все действия обработчика

function hod(){…}

Имя функции hod является ссылкой на саму функции, поэтому методу onPress можно присвоить имя функции.

c00_mc.onPress=hod;

c22_mc.onPress= hod;

Причем используя функцию eval можно записать последовательность операций присвоения в цикле.

for(row=0;row<=2;row++)

for(col=0;col<=2;col++)

   eval("c"+row+col+"_mc").onPress=hod; 

//или _root["c"+row+col+"_mc"].onPress=hod

В функции hod можно ссылаться на вызвавший объект через указатель this.

Определение положения выбранной клетки

В обработчике события нажатия клетки можно узнать ее имя с помощью свойства _name.

var clip_name: String

clip_name=this._name

В имени клетки зашито ее положение. Второй и третий символы —номера ее строки и столбца.

Строки имеют метод substring(start,end), который возвращает подстроку, начинающуюся с индекса start и заканчивающуюся перед индексом end.  Для получения номера столбца надо получить его строковое представление и преобразовать в число.

row=Number(clip_name.substring(1,2))

col=Number(clip_name.substring(2,3))

Задание 6

6.1 Запрограммировать игру следующим образом:

¨ два игрока по очереди проставляют свои ходы щелчками мышки на выбранных клетках — один крестиками другой ноликами;

¨ щелчок уже заполненной клетки игнорируется.

Указания.

Создать переменную player, которая может принимать два значения — "х" и "0" или 2, 3 (номера соответствующих кадров клетки). Значение ее меняется при каждом ходе и определяет кадр, на котором останавливается нажимаемый клип-клетка.

6.2 Добавить кнопку, нажатие которой начинает новую игру (очищает все клетки).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: