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