错误2207:参数child非null

时间:2013-10-05 17:27:33

标签: actionscript-3 flash

我在flash as3中有以下代码但是当我编译为swf并点击其中一个按钮从游戏画面返回到选项页面时,错误就像这样:

TypeError: Error #2007: Parameter child must be non-null.
    at flash.display::DisplayObjectContainer/removeChild()
    at FourSeasonsOfElements_v47_fla::MainTimeline/removeWinterScene()
    at FourSeasonsOfElements_v47_fla::MainTimeline/playAgain()

第3帧(游戏画面)中的代码是:

playagainbutton.addEventListener(MouseEvent.CLICK, playAgain);
function playAgain(event:MouseEvent){
    gotoAndStop("options");
    removeWinterScene();
    removeAutumnScene();
    removeSummerScene();
    MovieClip(root).gameTime = 0;//reset time
}

从1到7时间轴的长关键帧中的操作:

function removeWinterScene(){
    MovieClip(root).removeChild(winterbg);
    MovieClip(root).removeChild(shadebg1);
    MovieClip(root).removeChild(winterHeading);
}

其他第7帧中的冬季游戏场景帧具有时间轴中的代码:

stop();
var winterbg:WinterScene = new WinterScene();
var shadebg1:fadeShade = new fadeShade();

var winterHeading:WinterSeasonTitle = new WinterSeasonTitle();
addChildAt(winterbg,0);//move the winter background in the background.
addChildAt(shadebg1,1);
addChildAt(winterHeading,1);

winterHeading.x = 200;

非常感谢任何有关决议的协助。

1 个答案:

答案 0 :(得分:0)

Flash抱怨你正在尝试执行removeChild(null)。这意味着孩子已被删除,或者您的代码丢失/从未引用过它。如果没有看到更多周围的代码,就很难知道正确的答案,但这里有一些相关的问题可以帮助您进行调查。

您确定要引用您要删除的对象(变量是否指向正确的对象)?对象是否已被删除/垃圾收集(例如,因为movieclip已移动到另一帧)?变量是否为local,这意味着您无法从其他对象/函数访问它?