У меня странная проблема с перезагрузкой SWFS.
Я начинаю с загрузки моего SWF:
var req:URLRequest = new URLRequest( "RegionalIntro.swf" );
req.method = URLRequestMethod.POST;
req.data = true; // POST requests require non-null data
introSWF = new Loader();
introSWF.load(req);
addChild(introSWF);
Затем, когда я закончу, я выгружаю:
removeChild(introSWF);
introSWF.unloadAndStop(true);
Теперь, когда я хочу перезагрузить SWF, я снова запускаю первый бит кода и получаю эту ошибку:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
Я не могу понять, почему я получаю это во второй раз, а не первый. Это должно быть просто так же?
Это делается внутри .exe-файла Windows Projector, он будет работать как приложение киоска.
EDIT:
at com.company.THPassport.exRegional::exRegionalIntro/skipTablet()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at com.company.THPassport.exRegional::exRegionalLoader/userLoaded()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at com.company.THPassport.utilities.DB::user/loadUserData()
at com.company.THPassport.utilities.DB::user/checkExistingUserLoadedXML()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
Насколько я вижу, здесь появляется ошибка:
currentUser = e.data;
maxspeechB.parent.removeChild(maxspeechB);
maxspeechA.parent.removeChild(maxspeechA);
wallstageA.parent.removeChild(wallstageA);
tabletfalls.parent.removeChild(tabletfalls);
tabletvanishes.parent.removeChild(tabletvanishes);
wallfills.alpha = 0;
if (currentUser.getCompleteAreas() == 1) {
wallfills.gotoAndStop(40);
} else if (currentUser.getCompleteAreas() == 2) {
wallfills.gotoAndStop(80);
} else if (currentUser.getCompleteAreas() == 3) {
wallfills.gotoAndStop(120);
}
wallstageB.alpha = 1;
Tweener.addTween(wallfills,{ alpha:1, time:1, transition: "linear", onComplete:dropSignpost});
То, что я не могу понять, это то, почему это работает в первый раз, но когда оно перезагружается, оно не работает?
EDIT2: график утолщается, я могу уловить ошибку, окружив весь код функции в верхней части трассировки стека блоком try / catch. Я прослеживаю ошибку, и она такая же, странная вещь - весь код выполняется так, как ожидалось. Все работает нормально и выдает ошибку ... очень странно! Я бы не хотел оставлять это так, не выясняя, почему он это делает ...