Синтаксис стремный, потому что это не язык AS3, а команда компилятору.
Photo c заглавной буквы, потому что все классы именуют с заглавной.
Компилятор создает автоматически класс-наследник Bitmap с "предустановленной" битмапдатой — Photo. Поэтому в дальнейшем ты можешь создавать сколько угодно экземпляров этого класса и обращаться с ними как с обычным Bitmap.
Цитата:
|
Что это за тип данных Class?
|
Все классы являются объектами типа Class. Их можно передавать между функциями, хранить в переменных и получать на них ссылки, зная только название класса (строку). Для удобства этих операций существует тип Class.

Код AS3:
var A:Class = flash.display.Sprite; // класс
var cont:Sprite = new A() as Sprite; // экземпляр
Думаю, понятно почему нельзя написать

Код AS3:
var A:Class = flash.display.Sprite; // класс
var cont:A = new A(); // экземпляр
Потому что на этапе компиляции такого типа "A" не существует, это всего-лишь имя переменной.
Цитата:
|
то это будет огромная простыня и сумасшедшее количество переменных
|
а при загрузке в рантайме — не будет простыни и переменных?
Многие по возможности собирают много маленьких в одну большую — спрайтшит или атлас — и в рантайме "нарезают" ее на маленькие. Это особенно удобно, когда картинки являются кадрами какой-то секвенции или например иконками графического интерфейса; удобно, когда не нужен КЛАСС для каждой картинки, и даже отдельная переменная — когда можно хранить их в массиве.