Если вы работали с ActionScript 2.0 (например, в редакторе Macromedia Flash 8), то, скорее всего, помните о замечательном способо манипуляций с объектами из библиотеки проекта: любой MovieClip ( и не только мувиклип) можно достать из библиотеки и поместить на сцену флеш-ролика, обратившись к нужному мувику по имени. В качестве имени выступала уникальная строка-идентификатор, которая задавалась при создании мувиклипа. И, надо сказать, возможность манипуляции с объектами из библиотеки с помощью строки-идентификатора была очень полезной и востребованной...
Что-то похожее можно реализовать и в ActionScript 3.0 (похожее, но далеко не идентичное) с помощью замечательного метода getDefinitionByName(). Например, у вас есть класс по имени Rect, который отрисовывает красный прямоугольник. Конечно, экземпляр данного класса можно добавить в список отображения старым проверенным способом...
Код ActionScript 3.0:
addChild(new Rect());
Но есть и альтернативный способ, использующий возможности метода getDefinitionByName()...
Код ActionScript 3.0:
/*
импорт классов
*/
import flash.utils.getDefinitionByName;
/*
строка превращается ... в класс
*/
var MyClass:Class = getDefinitionByName("Rect") as Class;
/*
а, возможно, кому-то будет более привычнее и понятнее видеть следующую запись:
var MyClass:Class = Class(getDefinitionByName("Rect"));
*/
/*
добавляем экземпляр класса в список отображения
*/
addChild(new MyClass());
Пример, конечно, притянут за уши и в для данного случая использование getDefinitionByName() является излишним. Но зато хорошо видно, как метод getDefinitionByName() превращает строку с именем класса в ссылку на сам класс. Иногда это бывает очень полезно.