Я начинающий.Вопросы по коду

Код AS3:
import flash.events.Event;
var circle1 = {};
circle1.clip = krug1;
circle1.x = circle1.clip.x;
circle1.y = circle1.clip.y;
circle1.radius = circle1.clip.width/2;
circle1.xmov = 3;
circle1.ymov = 1;
var circle2 = {};
circle2.clip = krug2;
circle2.x = circle2.clip.x;
circle2.y = circle2.clip.y;
circle2.radius = circle2.clip.width/2;
circle2.xmov = -1;
circle2.ymov = 0;
function moveCircles () {
for (var i=1; i<=2; i++) {
var circle = this["circle"+i];
circle.x += circle.xmov;
circle.y += circle.ymov;
circle.clip.x = circle.x;
circle.clip.y = circle.y;
}
}
function CircleToCircleDetection (c1, c2) {
var xdiff = c1.x - c2.x;
var ydiff = c1.y - c2.y;
var distance = Math.sqrt(xdiff*xdiff+ydiff*ydiff);
if (distance <= c1.radius + c2.radius) {
trace ("Окружности пересекаются");
} else {
trace ("Окружности НЕ пересекаются");
}
}
1 вопрос.
В функции moveCirces

Код AS3:
circle.x += circle.xmov;
circle.y += circle.ymov;
Для чего указывается

Код AS3:
circle.clip.x = circle.x;
circle.clip.y = circle.y;
Ведь это ясно было из написанного выше.
2 вопрос.
Откуда в функции CircleToCircleDetection взялись параметры с1 и с2? Они не были прописаны. Как программа
идентифицирует их?