我在重新加载SWFS时遇到了一个奇怪的问题。 我开始与我的加载SWF:重新加载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.
我无法弄清楚为什么我会得到第二次加载,而不是第一次。它应该是一样的? 这是在Windows Projector.exe文件内部完成的,它将作为信息亭应用程序运行。
编辑:
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});
我不能工作了就是为什么工作的第一次,但是当它重新加载它不起作用?编辑2:剧情变厚,我可以捕捉错误,通过try/catch块包围堆栈跟踪顶部的函数中的所有代码。我跟踪错误和它一样,奇怪的是所有代码都按预期执行。所有工作正常,并引发错误...非常奇怪!我讨厌这样离开它,却没有找到它为什么这样做,但...
重新加载SWF时,您运行完全相同的代码吗? – 2011-05-12 15:34:40
我这样做。它在加载介绍的函数中,所以我再次调用该函数。 – 2011-05-12 15:37:07
Ben,你的代码第5行中有几个问题,你为什么不从'var introSWF:Loader = new Loader()'开始(换句话说,你以前是否已经初始化了它?)另外,你有没有尝试了解代码的各个部分来查看它仍然会出错?这应该有助于确定是否导致错误的加载(或卸载)。最后,如果你实际上没有发送任何东西,你为什么要使用POST方法? – mattstuehler 2011-05-12 15:49:46