Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 操作脚本3-ArgumentError:错误#2025:提供的DisplayObject必须是调用方的子对象_Javascript_Actionscript 3_Flash_Actionscript_Flash Cs6 - Fatal编程技术网

Javascript 操作脚本3-ArgumentError:错误#2025:提供的DisplayObject必须是调用方的子对象

Javascript 操作脚本3-ArgumentError:错误#2025:提供的DisplayObject必须是调用方的子对象,javascript,actionscript-3,flash,actionscript,flash-cs6,Javascript,Actionscript 3,Flash,Actionscript,Flash Cs6,我将在下面的教程中学习《动作脚本3》 我正在编写第2部分的编码投射物我不知道为什么每次按play键时都会出错 “ArgumentError:Error#2025:提供的DisplayObject必须是调用者的子对象。” 这是我在按下空格键时试图通过的精确代码,除了idk如何修复参数错误外,还有更多的代码 函数addBullet(startX,startY):无效{ } 函数moveBullet():void{ //循环遍历项目符号的所有实例 //从“0”循环到“项目符号数” 对于(变量i:in

我将在下面的教程中学习《动作脚本3》

我正在编写第2部分的编码投射物我不知道为什么每次按play键时都会出错

“ArgumentError:Error#2025:提供的DisplayObject必须是调用者的子对象。”

这是我在按下空格键时试图通过的精确代码,除了idk如何修复参数错误外,还有更多的代码


函数addBullet(startX,startY):无效{

}

函数moveBullet():void{

//循环遍历项目符号的所有实例
//从“0”循环到“项目符号数”
对于(变量i:int=0;istage.stageWidth){
//把子弹从舞台上拿下来
阶段。移除儿童(子弹[i]);
//从阵列中取出子弹
子弹(i);
}
}
}



有人能给我一些提示来改变什么吗?

这个错误意味着当这行运行时:

stage.removeChild(bullets_arr[i]);
bullets\u arr[i]
引用的项目实际上不在舞台上。可能是因为它已经从舞台上移除了

虽然这可能不是导致错误的确切原因,但这里的一个大问题是从当前迭代的数组中删除项

当您这样做时:
bullets\u arr.removeAt(i),您正在更改
项目符号\u arr
数组的大小

在第一次迭代中,
i
0
。第一个项目符号是
项目符号\u arr[0]
,第二个项目符号是
项目符号\u arr[1]
第三个项目符号是
项目符号\u arr[2]
等。如果在第一个循环中,您最终从数组中删除了项目,这意味着索引已经移动,因此现在您的第二个项目符号是
项目符号\u arr[0]
,但是在下一个循环中,
i
增加到
1
,因此现在您实际上跳过了第二个项目符号并正在检查第三个项目,在删除第一个项目符号后,它现在位于索引
1

moveBullet
函数中,更改循环,使其向后迭代,这样,如果删除某个项,它不会移动尚未迭代的索引

for (var i: int = bullets_arr.length - 1; i >= 0; i--) {

你的问题解决了吗?
stage.removeChild(bullets_arr[i]);
for (var i: int = bullets_arr.length - 1; i >= 0; i--) {