Вообще, объектно-ориентированное программирование (ООП) сродни вызыванию духов. Всё тот же полупритушенный свет, множество (или наоборот, двое-трое) зрителей и во главе стола - медиум. Вот он садится, кладёт руки на хрустальный шар и призывает духа войти в него... Проходят долгие милисекунды ожидания, наконец медиум открывает глаза - они уже неуловимо изменились - и начинает не своим голосом отдавать команды. Так вот, этот дух и есть программист.
А что он видит? А это зависит от версии AS (action sсript), в которую его вызвали. А чё сразу AS?
Например, в AS2 объекты создают крепкие семьи. Начинается это так.
Допустим, у нас есть некий мувиклип (MovieClip), назовём его Сёкл (Circle - окружность):
var Circle = new MovieClip();
И пусть программист, вселившийся в этот Сёкл даст команду: "сделай в себе ещё один мувиклип, и пусть звать его будут Ректангл" (ну, типа, нарисуй в окружности прямоугольник - Rectangle):
Circle.createEmptyMovieClip('Rectangle', Circle.getNextHighestDepth());
Вот и появляется новый объект и обращаться к нему нужно по имени-отчеству, мол уважаемый Ректангл Сёклович (или Ректангл ибн Сёкл, или Rectangle Circle):
Circle.Rectangle._x = 10;
Circle.Rectangle._y = 20;
В этих двух командах мы поместили Ректангла Сёкловича в координаты (10, 20). Но не суть. А как сам Ректангл обращается к Сёкл? Готовьте носовой платок, потому что Ректангл называет Сёкл словом "родитель" (parent)
Rectangle.newCoord = function()
{
this._parent._x = 100;
this._parent._y = 200;
}
//Это аналогично Circle._x = 100; Circle._y = 200;
Вот такие тесные семейные отношения в AS2.
В AS3 всё много жесче. Семьи в этом родственном понимании нет. Есть ячейка общества. Так, Сёкл уже не "рожает" мувиклип, а принимает его со стороны:
Cicle.addChild('Rectangle');
Знающие английский сразу видят в Ректангле не взрослого самостоятельного мувиклипа, а ребёнка (child). То есть, живёт себе Сёкл, живёт. Тут приходит дух программиста, приводит за руку Ректангла, передаёт его Сёклу и говорит: "Держи, воспитывай". В общем, несчастный приёмный ребенок. Озадаченный приёмный родитель.
А потом приводят к нему ещё одного ребёнка, ещё, и ещё... В итоге, Сёкл становится не матерью-отцом-героиней, а директором детского дома.
Кстати, как теперь обращаться к Ректанглу? По имени-отчеству? Нет, ведь у него нет отчества. Надо теперь прийти к Сёклу, спросить, живёт ли у него ещё Ректангл и если живёт, то позвать его:
var target = Circle.getChildByName('Rectangle');
И дальше работа идёт с этим target. Никакого имени. Никакого отчества. Только кличка-должность-номер.
target.x = 10;
target.y = 20;
Но самое умильное, как Ретангл называет своего приёмного воспитателя... Он называет его "родитель".
А что он видит? А это зависит от версии AS (action sсript), в которую его вызвали. А чё сразу AS?
Например, в AS2 объекты создают крепкие семьи. Начинается это так.
Допустим, у нас есть некий мувиклип (MovieClip), назовём его Сёкл (Circle - окружность):
var Circle = new MovieClip();
И пусть программист, вселившийся в этот Сёкл даст команду: "сделай в себе ещё один мувиклип, и пусть звать его будут Ректангл" (ну, типа, нарисуй в окружности прямоугольник - Rectangle):
Circle.createEmptyMovieClip('Rectangle', Circle.getNextHighestDepth());
Вот и появляется новый объект и обращаться к нему нужно по имени-отчеству, мол уважаемый Ректангл Сёклович (или Ректангл ибн Сёкл, или Rectangle Circle):
Circle.Rectangle._x = 10;
Circle.Rectangle._y = 20;
В этих двух командах мы поместили Ректангла Сёкловича в координаты (10, 20). Но не суть. А как сам Ректангл обращается к Сёкл? Готовьте носовой платок, потому что Ректангл называет Сёкл словом "родитель" (parent)
Rectangle.newCoord = function()
{
this._parent._x = 100;
this._parent._y = 200;
}
//Это аналогично Circle._x = 100; Circle._y = 200;
Вот такие тесные семейные отношения в AS2.
В AS3 всё много жесче. Семьи в этом родственном понимании нет. Есть ячейка общества. Так, Сёкл уже не "рожает" мувиклип, а принимает его со стороны:
Cicle.addChild('Rectangle');
Знающие английский сразу видят в Ректангле не взрослого самостоятельного мувиклипа, а ребёнка (child). То есть, живёт себе Сёкл, живёт. Тут приходит дух программиста, приводит за руку Ректангла, передаёт его Сёклу и говорит: "Держи, воспитывай". В общем, несчастный приёмный ребенок. Озадаченный приёмный родитель.
А потом приводят к нему ещё одного ребёнка, ещё, и ещё... В итоге, Сёкл становится не матерью-отцом-героиней, а директором детского дома.
Кстати, как теперь обращаться к Ректанглу? По имени-отчеству? Нет, ведь у него нет отчества. Надо теперь прийти к Сёклу, спросить, живёт ли у него ещё Ректангл и если живёт, то позвать его:
var target = Circle.getChildByName('Rectangle');
И дальше работа идёт с этим target. Никакого имени. Никакого отчества. Только кличка-должность-номер.
target.x = 10;
target.y = 20;
Но самое умильное, как Ретангл называет своего приёмного воспитателя... Он называет его "родитель".
Пара отзывов с работы:
1.
2.