Я рекомендую использовать Event.INIT вместо Event.COMPLETE. INIT получает триггер после загрузка завершена и все классы / экземпляры в загруженном SWF инициализированы и готовы к использованию.
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.INIT, handleInit);
addChild(loader);
function handleInit(e:Event):void{
var as2Movie:AVM1Movie = e.target.content as AVM1Movie;
}
Вы можете получить доступ к загруженному контенту через свойство content класса Loader.
Не то чтобы, поскольку вы загружаете фильм as2 в фильм as3, применяются некоторые ограничения:
"AVM1Movie - это простой класс, представляющий видеоклипы AVM1, в которых используется ActionScript 1.0 или 2.0. (AVM1 - это виртуальная машина ActionScript, используемая для запуска ActionScript 1.0 и 2.0. AVM2 - это виртуальная машина ActionScript, используемая для запуска ActionScript 3.0.) Когда Flash Player 8 или более ранний SWF-файл загружается объектом Loader, создается объект AVM1Movie. Объект AVM1Movie может использовать методы и свойства, унаследованные от класса DisplayObject (например, x, y, width и т. Д.) Однако совместимость (например, вызов методов или использование параметров) между объектом AVM1Movie и объектами AVM2 не допускается.
Существует несколько ограничений для SWF-файла AVM1, загружаемого SWF-файлом AVM2:
Загруженный объект AVM1Movie работает как объект psuedo-root для SWF-файла AVM1 и всех загруженных им SWF-файлов AVM1 (как если бы для свойства lockroot ActionScript 1.0 было установлено значение true). Фильм AVM1 всегда является вершиной любого выполнения кода ActionScript 1.0 или 2.0 в любых дочерних элементах. Свойство _root для загруженных потомков всегда является этим SWF-файлом AVM1, если только свойство загруженного корня не установлено в загруженном SWF-файле AVM1.
Содержимое AVM1 не может загружать файлы по уровням. Например, он не может загружать файлы, вызывая loadMovieNum («url», levelNum).
SWF-файл AVM1, загруженный SWF-файлом AVM2, не может загрузить в него другой SWF-файл. То есть он не может загрузить другой SWF-файл поверх самого себя. Однако дочерние объекты Sprite, объекты MovieClip или другие SWF-файлы AVM1, загруженные этим SWF-файлом, могут загружаться в него. "Из документов as3.
Для получения дополнительной информации см. Справочник AMV1Movie .
Если вы хотите вызвать as2 фильмы из as3, вам нужно будет использовать Local Connection для установления связи между 2 swfs.
Грант Скиннер написал удобную вещь под названием SWF Bridge для такого рода ситуаций (простое общение от as2 до as3). Стоит попробовать.
Гудлак!