У меня есть игра, которая динамически загружает другую мини-игру.
Я загружаю его с помощью SWFLoader
:
function loadMinigame(minigameName:String):void
{
var loader:SWFLoader = new SWFLoader;
loader.load("/Content/Swf/" + minigameName + ".swf");
layerMinigames.addElement(loader);
}
В первый раз, когда я загружаю, все работает нормально. Но когда я выхожу из мини-игры и пытаюсь открыть ее снова тем же методом, она не используется в моем приложении (иногда бывает, иногда нет).
Обе игры являются приложением Flex.
Что происходит?
Обновить
Я сделал loader.loadForCompatibility = true
, и теперь он правильно загружается! Но теперь я получаю сообщение об ошибке, когда пытаюсь привести результат:
loader.addEventListener(Event.COMPLETE, function(e:Event):void
{
var sys:SystemManager = SystemManager(e.currentTarget.content);
});
дает:
TypeError: Ошибка № 1034: Ошибка приведения типа: невозможно преобразовать _AppMinigame1_mx_managers_SystemManager @ 14c97eb9 в mx.managers.SystemManager.
prototype
этогоMain
класса SWF, отбросив расширенный SWF и создавnew loadedGames[minigameName]()
всякий раз, когда вам понадобится новый экземпляр игры. Я обновлю ответ. 31.07.2014