Функция — это тоже объект, и с ней можно обращаться как и со всеми прочими объектами. А раз функция — объект, то на неё есть ссылка. Часто бывает удобнее раздать нескольким объектам ссылку на функцию, которой им следует пользоваться. Мы могли бы запросто создать по функции в каждом объекте, но когда нам везде нужны одни и те же действия — раздать объектам ссылки на одну функцию гораздо удобнее. Это делает программу логичнее, облегчает её поддержку и отладку.
spin = function ()
{
// функция работает с объектом через ссылку this
//
// вращаем
this.angle += this.spin;
this._rotation = this.angle;
};
for (var i = 0; i<30; i++) {
// создаём мувиклип (объект типа MovieClip).
// метод createEmptyMovieClip() возвращает ссылку,
// через которую мы работаем с клипом
var point = this.createEmptyMovieClip("point"+i, i);
point._x = 100;
point._y = 100;
var radius = 10+i; // радиус вращения
with (point) {
// рисуем в клипе закорючку
/* обратите внимание, переменной radius нет в объекте point
однако её значение автоматически находится во внешней
для этого блока with() области видимости */
lineStyle(4, 0, 100);
moveTo(radius, 0);
lineTo(radius, 1);
lineTo(radius-1, 1);
}
// записываем в объект point ссылку на функцию followMouse
// под именем onEnterFrame
point.onEnterFrame = spin;
// создаем свойства, управляющие вращением
point.spin = i/3; // скорость вращения
point.angle = 0; // изначальный угол поворота
}
Мы создаем в цикле 30 клипов и всем им даем ссылку на функцию spin в качестве обработчика onEnterFrame. Это избавляет нас от необходимости создавать одну и ту же функцию 30 раз.
Уникальное в блогах
- Новые декорации оформление оформление и дизайн мастерских и ремесленных в давние-придание времена
- Юбилей - 200ая публикация статей в международной блогопанораме!
- Спортивный и активный туризм снаряжение для него
- Учитель информатики предлагает графический редактор онлайн

