Существует несколько причин, по которым это не сработает, но главная из них заключается в том, что кадры не существуют во время выполнения, как вы пытаетесь получить к ним доступ. Кадры представляют собой концепцию времени автора - когда вы помещаете определенное содержимое в кадр 1, а другое содержимое - в кадр 2, во время выполнения Flash не отслеживает различные наборы дочерних элементов для каждого кадра. То, что скомпилировано в SWF, - это просто инструкции о том, что определенные дочерние элементы должны автоматически добавляться или удаляться при переходе от кадра 1 к 2 или наоборот.
Если вам просто нужна вторая копия данного MC, которая воспроизводит ту же анимацию, что и первая, вам скорее всего нужно будет продублировать сам объект. В AS2 вы могли бы сделать это с API duplicateMovieClip (), но, к сожалению, AS3 не имеет эквивалентной команды. Вместо этого вам нужно создать новый экземпляр клипа, который вы хотите дублировать, с кодом этой формы:
var swf:MovieClip = this.content.swf;
var swfClass:Class = swf.constructor;
var newSwf:MovieClip = new swf.constructor;
Обратите внимание, что это не будет работать, если объект, который вы пытаетесь продублировать (this.content.swf), не был прикреплен к классу (т. Е. Был установлен флажок "экспорт для ActionScript"), когда он был опубликован. Если это не так, то, насколько я знаю, нет способа дублировать его в AS3. Если это так, я думаю, что лучшее, что вы можете сделать, - это обходной путь - например, вместо создания дубликата клипа, вы можете создать растровое изображение, и каждый кадр просто отображает внешний вид исходного клипа в BitmapData, и закрасить эти данные в «дубликат» растрового изображения.