Инициализовать Starling очень просто, в примерах это делают приблизительно так:

Код AS3:
MyStarling = new Starling(RootUI, stage);
MyStarling.addEventListener('rootCreated', OnStarlingRootCreated);
MyStarling.addEventListener('context3DCreate', OnContext3DCreated);
MyStarling.enableErrorChecking = false;
MyStarling.showStats = true;
MyStarling.start();
В минимальном примере слушатели событий не нужны, первый позволяет получить экземпляр созданного Starling root-класса, второй - отслеживать падения контекста отрисовки(нужно в более-менее крупных проектах, обычно под Android), для повторной загрузки ресурсов в видеопамять. Пересоздание VBO, загрузку текстур и шейдеров Starling обычно берет на себя, это происходит если сделать вот так:

Код AS3:
Starling.handleLostContext = true;
Но часто это может стать помехой разработчику, так как для повторной загрузки текстуры в видеопамять мы должны держать её данные в оперативной памяти, поэтому иногда приходится отслеживать падение контекста вручную, показывать пользователю прогрессбар, и быстро-быстро подгружать нужные файлы

. Эта проблема
обсуждалась еще год назад, но с тех пор, если не ошибаюсь, никаких удобных способов её решения не появилось, за исключением свойства onRestore у класса Texture, позволяющего задать функцию, которая восстановит текстуру после потери контекста. Это, конечно, если не использовать "родной" AssetManager Starling, у него учитывается возможность потери контекста и он умеет использовать это свойство.
Какова роль класса, инициализируемого Starling, или где хранить экземпляр самого Starling - это решать лучше исходя из своего видения архитектуры, могу сказать только что root-класс обязательно должен быть наследником starling.display.DisplayObject.