TypeError: Error #1009: 無法訪問空物件引用的屬性或方法。(解決)
阿新 • • 發佈:2019-01-26
細部分析和總結:
由於主SWF和子SWF單獨執行都沒有問題,一旦要求主SWF載入子SWF的時候就報找不物件或者屬性這個問題.導致子SWF不能順利執行.
原因在子SWF的stage屬性上. 單獨執行的子SWF的時候,例項已經處於舞臺上.所以子SWF的stage屬性是事實存在的.所以在子SWF類建構函式中引用stage屬性是正常的.但是一旦被主SWF載入的時候.主SWF還沒有來得及addChild(子SWF),導致子SWF的stage屬性為null.在過建構函式中引用值為null的stage導致錯誤發生.以至於不能正常載入.
=========
解決這個問題辦法:
在子SWF類建構函式中加入(紅色)
//舉例code:
//===============
package{
import flash.display.MovieClip;
import flash.events.Event;
public class testClass extends MovieClip{
public function testClass():void
{
this.addEventListener(Event.ADDED_TO_STAGE,onStageHandler);
}
priatve function onStageHandler(evt:Event)
{
init()
this.removeEventListener(Event.ADDED_TO_STAGE,onStageHandler);
}
priatve function init():void
{
//子SWF的主體構CODE放這裡.
//對stage屬性的引用
}
}//endclass
}//endpackage
由於主SWF和子SWF單獨執行都沒有問題,一旦要求主SWF載入子SWF的時候就報找不物件或者屬性這個問題.導致子SWF不能順利執行.
原因在子SWF的stage屬性上. 單獨執行的子SWF的時候,例項已經處於舞臺上.所以子SWF的stage屬性是事實存在的.所以在子SWF類建構函式中引用stage屬性是正常的.但是一旦被主SWF載入的時候.主SWF還沒有來得及addChild(子SWF),導致子SWF的stage屬性為null.在過建構函式中引用值為null的stage導致錯誤發生.以至於不能正常載入.
=========
解決這個問題辦法:
在子SWF類建構函式中加入(紅色)
//舉例code:
//===============
package{
import flash.display.MovieClip;
import flash.events.Event;
public class testClass extends MovieClip{
public function testClass():void
{
this.addEventListener(Event.ADDED_TO_STAGE,onStageHandler);
}
priatve function onStageHandler(evt:Event)
{
init()
this.removeEventListener(Event.ADDED_TO_STAGE,onStageHandler);
}
priatve function init():void
{
//子SWF的主體構CODE放這裡.
//對stage屬性的引用
}
}//endclass
}//endpackage