sI創建了一個子項並將其添加到動畫片段,但是當我在另一個函數中訪問其屬性時,Animate拋出錯誤#1009:無法訪問null的屬性或方法對象引用。添加到舞臺後,AS3子項爲空
孩子有一個聽衆添加和刪除沒有困難,並可以從顯示列表中刪除很好用removeChild,但顯然沒有其他與它相關的屬性(x,y等)。它就好像孩子已被添加到顯示列表,但沒有其他關聯的屬性?
孩子被轉換爲MovieClip,我嘗試添加一個監聽器(ADDED_TO_STAGE)以確保孩子在作爲顯示對象訪問其屬性之前在舞臺上可用。但是,沒有運氣。
我在我的遊戲中使用相同代碼的其他情況似乎可以正常工作。我不是專家,但我也並不陌生的ActionScript,而這一次莫名其妙的我...
創建子級代碼:
function createNPCtargets():void
{
for (var i:int=0 ; i<= npcs -1 ; i++)
{
var NPCtarget:MovieClip = new target_mc;
overlay_mc.addChild(NPCtarget);
NPCtarget.name = "target_" + i;
NPCtarget.addEventListener(MouseEvent.CLICK, fireShot);
}
}
代碼拋出錯誤(npcObject是罰款):
function moveNPC():void
{
for (var i:int=0 ; i<= npcs -1; i++)
{
overlay_mc.getChildByName("target_" + i).x = npcObject.x;
overlay_mc.getChildByName("target_" + i).y = npcObject.y;
}
}
如果你在這個循環中添加trace(overlay_mc.getChildByName(「target_」+ i))?它是否找到對象? – 3vilguy
好主意3vilguy,我實際上在發佈前試過。奇怪的是,它的痕跡,沒有問題的對象本身,但第二個我添加了一個.X(或任何其他財產)到行的末尾,它拋出一個運行時錯誤...所以它似乎找到,沒有麻煩的對象,只是不能訪問它的任何屬性。 – user3600741
Weirdz如果可以的話,如何將它轉換爲DisplayObject並檢查它是否爲空。你確定'npcObject'不是null? – 3vilguy