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


Создание кода - часть 3


// количество частей, например countOfParts. Это облегчит

// дальнейшую модификацию ролика.

if (_root["Part"+i].hitTest(x,y, true)) {

// Указываем, какой элемент нужно перетаскивать,

// и задаем смещение.

dragPart = i;

offsetx = _root["Part"+i]._x - x;

offsety = _root["Part"+i]._y - y;

break;

}

}

}

Когда пользователь отпускает кнопку мыши, переменная вновь принимает значение 0.

onClipEvent (mouseUp) {

dragPart = 0;

}

Вместо параметров _xmouse и _ymouse вышеприведенный код использует _root._xmouse и _root._ymouse. Первые параметры соответствуют положению курсора относительно клипа, а не рабочего поля. Поэтому если ваш клип не будет расположен в верхнем левом углу, вы не получите нужных значений. При добавлении в код параметра _root положение курсора будет всегда задаваться относительно рабочего поля.

Основополагающим компонентом данного кода является функция onClipEvent (enterFrame). Она проверяет, не равна ли переменная dragPart нулю, а затем задает положение перетаскиваемого элемента соответственно текущему положению курсора мыши плюс значение смешения.

// Если какой-либо элемент перетаскивается, меняем его координаты

onClipEvent (enterFrame) {

if (dragPart > 0) {

_root["Part"+dragPart]._x = _root._xmouse + offsetx;

_root["Part"+dragPart]._y = _root._ymouse + offsety;

}

}

В нашем примере используются не клипы, а графические элементы из библиотеки. Но для всех графических символов, которые будут иметь возможность перемещаться по рабочему полю, мы устанавливаем свойство MovieClip в выпадающем меню Symbol Behavior (Поведение символа). Это меню находится в верхней левой части панели Properties (рис. 7.2). Теперь, хотя мы создали этот символ как графический элемент его копии можно присваивать имя, как будто он является клипом! Например, символ "Arm1" в библиотеке отображается как графический: элемент, но на панели Properties мы присвоили ему имя "Part1", так как свойство его поведения было изменено.




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



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