我正在为我教的一个高中课程编写一些游戏设计教程,并且在我用来教学和学习的几个不同文件中一直卡在同一个问题上。
错误(我确实搜索过)是 2025“必须是调用者的孩子”错误。为了更好地理解这一点,我创建了一个文件,如下所示。我会指出这是一个基于 .fla 的框架代码,我们所做的其他工作是在一个 .as 文件中。好歹:
fireButton.addEventListener(MouseEvent.CLICK, fire_fn);
addEventListener(Event.ENTER_FRAME, moveShots);
var speed:int = 20;
var shot:Shot;
var shots:Array=new Array;
function fire_fn(e:Event) {
shot = new Shot();
shot.x = gun.x+shot.width;
shot.y = gun.y;
addChild(shot);
shots.push(shot);
}
function moveShots(e:Event) {
for(var i:int=shots.length-1; i>=0; i--) {
shots[i].x += speed;
if(shots[i].x > stage.stageWidth -50) {
removeChild(shots[i]);
}
}
}
我知道问题在于 removeChild 行,但我不清楚应该如何编写或者(可能更重要的是)为什么。欢迎任何意见。