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
Actionscript 3 AS3-正确参考电影剪辑_Actionscript 3_Scope_Movieclip - Fatal编程技术网

Actionscript 3 AS3-正确参考电影剪辑

Actionscript 3 AS3-正确参考电影剪辑,actionscript-3,scope,movieclip,Actionscript 3,Scope,Movieclip,因此,我有一个Player.as类文件,其中包含以下代码: private function PressAKey(event:KeyboardEvent):void { getDistance(); if(event.keyCode == 32 && placedBomb == false && bombNumber == 0)//space { xKey = true; placeBomb(); placedBomb = tru

因此,我有一个Player.as类文件,其中包含以下代码:

private function PressAKey(event:KeyboardEvent):void
 {
   getDistance();
   if(event.keyCode == 32 && placedBomb == false && bombNumber == 0)//space
 {
   xKey = true;
   placeBomb();
   placedBomb = true;
}
}
将其与以下placeBomb()函数结合使用:

private function placeBomb():void{

 MainClass.container.addChildAt(bomb,0);
 bomb.x = this.x;
 bomb.y = this.y+20;
 bombNumber ++;
}
问题来自这个函数,它试图计算玩家和炸弹之间的距离,以便我可以开始构建交互:

private function getDistance():void{
 distance = Math.sqrt( ( this.x - MainClass.container.bomb.x ) * ( this.x - MainClass.container.bomb.x ) + ( this.y - MainClass.container.bomb.y ) * ( this.y - MainClass.container.bomb.y ) );
 trace(distance);
}
我尝试此操作时出现此错误:

TypeError: Error #1010: A term is undefined and has no properties.
at Player/getDistance()
at Player/PressAKey()

你知道我错过了什么吗?这肯定是一个范围问题,那么为了让整个类都能识别炸弹,我需要包括什么呢?

bomb
不是
MainClass.container
的属性<代码>炸弹是独生子女

请参阅以下代码

private function getDistance():void
{
   var bomb:DisplayObject = MainClass.container.getChildAt(0);

   distance = Math.sqrt( ( this.x - bomb.x ) * ( this.x - bomb.x ) + ( this.y - bomb.y ) * ( this.y - bomb.y ) );
   trace(distance);
}
如何引用所有的孩子。
for(var i:int=0;IEExcellent)。引用了它并且代码正在工作。我是这样引用范围之外的所有变量的吗?
for(var i:int = 0; i<parentObject.numChildren; i++)
{ 
   var object:DisplayObject = parentObject.getChildAt(i);
   /*
   p.s: if a child object type is MovieClip. must be typecasting.
   var object:MovieClip = parentObject.getChildAt(i) as MovieClip;
   */
}