我在重新加載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