Не уверен, почему вас голосуют, это довольно стандартный вопрос во Flash-стране.
По сути, файл .swf, который публикуется вашим предзагрузчиком .fla, должен иметь возможность загружаться, а затемотображать .swf, опубликованные другими .fla.Вы бы поместили код, похожий на этот, в ваш preloader:
var swf1:MovieClip;
var swf2:MovieClip;
function loadFirstSwf():void {
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, firstSWFLoaded);
loader.load( new URLRequest( "swf1.swf" ));
}
function firstSWFLoaded(e:Event):void {
swf1 = MovieClip(e.currentTarget.content);
e.currentTarget.removeEventListener(Event.COMPLETE, firstSWFLoaded);
loadSecondSwf();
}
function loadSecondSwf():void {
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, secondSWFLoaded);
loader.load( new URLRequest( "swf2.swf" ));
}
function secondSWFLoaded(e:Event):void {
swf2 = MovieClip(e.currentTarget.content);
e.currentTarget.removeEventListener(Event.COMPLETE, secondSWFLoaded);
whatever();
}
function whatever():void {
// logic here to do whatever you need to do next.
}
loadFirstSwf();
Обратите внимание, что это не самая эффективная архитектура - я старался сделать ее максимально простой, не будучи уверенным в вашем уровне AS3опыт.Несколько вещей, на которые стоит обратить внимание:
1) Вы вызываете их последовательно.Когда первое заканчивается, оно получает второе и т. Д. Вы можете добавить третье и четвертое и т. Д. Это должно сделать явный порядок, в котором они прибывают.Вы также можете запустить их все сразу, но это требует некоторой дополнительной логики, чтобы убедиться, что вы знаете, что происходит откуда, потому что они могут закончить в другом порядке, чем вы их запускаете.Это распространенная ошибка новичка, и я пытаюсь настроить ее так, чтобы вам не приходилось с ней сталкиваться.
2) Убедитесь, что вы удаляете прослушиватели событий из загрузчиков после того, какВы извлекаете загруженный .swf.Это просто гарантирует, что они не останутся в памяти навсегда.
3) Вы на самом деле не слушаете прогресс, используя этот пример - если вы хотите, вы можете использовать loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler), а затем поместите код в обработчик прогресса для прослушивания фактического текущего состояния загрузки.
Итак, приведенный выше пример очень прост, но должен работать.Если вы хотите получить что-то более надежное или иметь дело со многими дочерними SWF-файлами, обратите внимание на использование чего-то вроде LoaderMax от GreenSock - это бесплатная сторонняя библиотека, которая помогает вам легко управлять загрузкой нескольких файлов.
Ура, и я надеюсь, что это помогает!