0

我在 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;

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

4

1 回答 1

0

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

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

于 2013-10-11T16:58:00.317 回答