Вы можете сделать это несколькими способами; во-первых, у вас может быть каждая отдельная шапка в виде отдельного символа в библиотеке Flash (если вы используете IDE), а затем в их свойствах установите флажок «Экспорт для ActionScript» и выберите подходящее имя. Он скажет вам, что нет определения пути к классу, и он будет создан автоматически (или что-то в этом роде), но это не проблема, поскольку вам не нужно создавать файл класса для этих объектов - это просто расширения MovieClip с некоторыми конкретными данными в них.
Так что, если вы делаете это с каждой шляпой, скажем, вы называете их Hat_1, Hat_2 и т. Д .; тогда вам нужно создать объект «шляпа» внутри объекта головы вашего аватара. Всякий раз, когда шляпа меняется, вы вызываете новый экземпляр этого конкретного объекта шляпы и помещаете его на сцену:
//when user chooses a hat, however this is done:
var newHat:Hat_1 = new Hat_1();
avatarBody.avatarHead.hat.addChild(newHat);
Затем этот символ шляпы будет добавлен к объекту шляпы вашего аватара и будет перемещаться вместе с объектом головы, как вы ожидаете. Вы можете изменить шляпу на лету, просто позвонив другому типу шляпы и удалив предыдущий.
В качестве альтернативы вы можете сделать это, загрузив в шапку символы с внешних изображений и сохранив их в переменных для случая, когда их нужно добавить в объект аватара. Вы сделали бы это, используя XML; если вы не знаете, как это сделать, я могу объяснить.