Shape - это DisplayObject, такой же, как Sprite, MovieClip и Button. Все экранные объекты во вспышке автоматически инициализируют свои позиции X и Y, когда они создаются в 0,0.
Когда вы выполняете вызовы рисования для shape.graphics, координаты относятся к началу фигуры. Другими словами, форма имеет свое собственное преобразование.
Чтобы исправить свой код, измените эту строку:
tShape.graphics.drawCircle(spawnX, spawnY, 10);
до:
tShape.graphics.drawCircle(0, 0, 10);
так, чтобы круг рисовался с центром в начале координат, 0,0.
Затем установите положение фигуры, используя
tShape.x = spawnX;
tShape.y = spawnY;
Оттуда ваш код будет работать как положено.
Кроме того, Actionscript получает улучшение производительности от использования строгой типизации, хотя это и не требуется. Выбор использования объекта для вашего модуля, возможно, стоит пересмотреть позже в проекте при рефакторинге и преобразовании его из универсального объекта в пользовательский тип класса. Использование объекта не сломает вашу игру, но создание Типа для него может улучшить вашу игровую производительность, если ваша игра нуждается в дополнительной производительности.