Зачем ты это делаешь?
var _root:MovieClip = parent.parent as MovieClip;
...
_root.addChild(sp);
Этот стиль управления списком отображения напоминает снисходительность ActionScript 2 с инкапсуляцией и полиморфизмом.
Ваш объект Greeter не должен пытаться получить доступ к объектам над ним в списке отображения таким способом. Greeter должен добавить этот прямоугольник как дочерний элемент, и нет никаких причин использовать объекты MovieClip в этом контексте, спрайты более подходящие.
Чтобы ответить на ваш вопрос и исправить полученный ответ о addChild, использование приложения Spark вместо mx: Application является причиной, по которой addChild не является допустимой функцией. Экземпляры приложения Spark должны содержать новый тип экранного объекта, как указано выше, либо расширение SpriteVisualElement, либо объект, который реализует функции, определенные в IVisualElement.
Если вы не используете функциональность компоновки и скинов Spark, просто перейдите на использование тега Flex 3 / Halo / mx Application, и вы сможете добавить addChild (), как и ожидалось, со стандартным объектом, расширяющим Sprite вместо SpriteVisualElement.