Иллюстрированный самоучитель по Flash-games


Создание кода


Здесь не применяется перетаскивание, поэтому сценарий будет немного проще. Код представляет собой сценарий onClipEvent (mouseDown) помешенный в клип "actions", который расположен за пределами рабочего поля клипа. Как и функция hitTest в ролике Makeafox-drag.fla, данный сценарий проверяет, какой клип выбран.
Однако вместо имен "Part1" - "Part 13" клипы получают значащие имена (например, "Eyes" и "Head"). Сценарий должен проверить каждый клип, для чего все клипы собраны в общий список.
При нахождении соответствующего клипа код продвигается на один кадр вперед. Если впереди кадров больше нет, он возвращается к кадру 1.

onClipEvent (mouseDown) {

// Определяем, в каком месте щелкнул пользователь

x = _root._xmouse;

y = _root._ymouse;

// Выясняем, по какому элементу произведен щелчок

list = ["Eyes", "Mouth", "Head", "Legs", "Left Arm", "Right Arm", "Body"];

for(i=0;i

if (_root[list[i]].hitTest(x, y, true)) {

// Меняем выбранный элемент

with (_root[list[i]]) {

// Переходим к следующему кадру

if (_currentFrame == _totalframes) {

gotoAndStop(1);

} else {

nextFrame();

}

}

break;

}

}

}

Номер кадра и обшее количество кадров определяется при помощи параметров _currentFrame и _totalFrame. Это очень удобно в случае, когда клипы могут включать любое количество кадров, а код -учитывать все возможные варианты.

Конструкция with указывает, что все команды и функции кода в рамках этой конструкции должны выполняться для определенного клипа. Это позволит вам обойтись без добавления _root [movieclip] в начале каждой команды или функции.

Ролик Makeafox-switch.fla можно увидеть на Web-сайте. На рис. 7.4 показан один из возможных вариантов, получившихся в результате внесенных изменений. Независимо от того, сколько раз и в какой последовательности пользователь щелкает по элементам изображения, оно всегда будет оставаться цельным.

Рисунок 7.4 Пользователь может щелкнуть по любой части тела и изменить ее




Начало  Назад  Вперед



Книжный магазин