Всем привет. Очередной нуб-вопрос "на понимание".
Есть однофреймовый проект. Есть мувиклип шарика (имя экземпляра circle1_mc).
Внутри мувиклипа два слоя, на первом слое такой код:

Код AS3:
stop();
import flash.events.Event;
addEventListener(Event.ENTER_FRAME, onEnter);
function onEnter(e:Event):void
{
x++;
y++;
}
Он работает, шарик летит по диагонали.
Однако возникают некоторые общие вопросы...
1. Почему мы нигде не обьявляем x и y, и при этом никакой ошибки "я не знаю что такое x" нет?
Могу предположить, что эти строки автоматически переводятся в this.x++ и this.y++, однако почему, например функция onEnter не закрывает видимость этих переменных от самого мувика? То есть функция могла бы "рассуждать" так: есть локальные переменные, они не объявлены, ничего не знаю - ошибка.
2. Можно ли как-то более явно указать эти координаты?
Я попробовал так:

Код AS3:
circle1_mc.x++;
circle1_mc.y++;
и так:

Код AS3:
stage.circle1_mc.x++;
stage.circle1_mc.x++;
но такие варианты как раз и не работают, возникают ошибки типа такой:
Цитата:
|
1119: Access of possibly undefined property circle1_mc through a reference with static type flash.display:Stage.
|
То есть, я догадываюсь, что надо как-то сначала указать стэйдж, но каким образом это сделать грамотно в AS3 не прибегая к внешним класс-файлам? И сколько есть способов такого обращения?
P.S. C классами мне покамест не очень комфортно, хотелось бы также узнать базовые вещи фрэймового кодинга.