我在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;
非常感谢任何有关决议的协助。
答案 0 :(得分:0)
Flash抱怨你正在尝试执行removeChild(null)。这意味着孩子已被删除,或者您的代码丢失/从未引用过它。如果没有看到更多周围的代码,就很难知道正确的答案,但这里有一些相关的问题可以帮助您进行调查。
您确定要引用您要删除的对象(变量是否指向正确的对象)?对象是否已被删除/垃圾收集(例如,因为movieclip已移动到另一帧)?变量是否为local,这意味着您无法从其他对象/函数访问它?