Один быстрый обходной путь - создать второй загрузчик и передать ему загруженные байты с помощью метода loadBytes () :
var l:Loader = new Loader();
l.contentLoaderInfo.addEventListener(Event.COMPLETE,ready);
l.load(new URLRequest("../assets/glow2.swf"));
function ready(event:Event):void{
var mc:MovieClip = event.currentTarget.content as MovieClip;
var clone:Loader = new Loader();
clone.loadBytes(event.currentTarget.bytes);
addChild(mc);
addChild(clone);
clone.x = 100;
}
Это будет работать в большинстве случаев. В некоторых случаях вам может понадобиться что-то такое простое, как:
var clone:MovieClip = MovieClip(new mc.constructor());
И есть также 3-й вариант: «перетягивание» вашего мувиклипа, что означает, что вы будете хранить один или несколько (в зависимости от того, сколько кадров MoveClip вам нужно кэшировать) объектов BitmapData в памяти, что draw () из исходного мувиклипа, который вы хотите нарисовать (в нескольких местах одновременно).
Подход loadBytes достигает того, что предлагает вопрос: создает копию загрузчика, поэтому он повторно использует загруженные байты, но инициализирует новый контент, поэтому использует для этого память.
Если это не то, что вам нужно, кэширование MovieClip с использованием BitmapData - ваш лучший выбор.