Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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
Flash AS2-我的movieclips存储在一个数组中,但我无法访问它们的属性或方法_Flash_Actionscript_Actionscript 2_Movieclip_Hittest - Fatal编程技术网

Flash AS2-我的movieclips存储在一个数组中,但我无法访问它们的属性或方法

Flash AS2-我的movieclips存储在一个数组中,但我无法访问它们的属性或方法,flash,actionscript,actionscript-2,movieclip,hittest,Flash,Actionscript,Actionscript 2,Movieclip,Hittest,我已经将一系列复制的电影剪辑存储在一个阵列中,这样我就可以检查是否有子弹击中任何敌人的MCs。但是,Flash不允许我访问movieclips上的属性或方法 function checkHits(){//checks for hits between enemies and bullets for (var zz = 0; zz < bulletArray.length; zz += 1)//checks for each bullet { for(var yy=0;yy<enemi

我已经将一系列复制的电影剪辑存储在一个阵列中,这样我就可以检查是否有子弹击中任何敌人的MCs。但是,Flash不允许我访问movieclips上的属性或方法

function checkHits(){//checks for hits between enemies and bullets
for (var zz = 0; zz < bulletArray.length; zz += 1)//checks for each bullet
{
for(var yy=0;yy<enemiesArray.length;yy+=1){//checks for each enemy
    trace("enemies loc"+yy+":"+enemiesArray[yy]);
    trace("bullet loc"+zz+":"+bulletArray[zz]);
    if(bulletArray[zz].hitTest(enemiesArray[yy])){
        trace("HIT!");
       removeMovieClip(bulletArray[zz]);
       removeMovieClip(enemiesArray[yy]);
       bulletArray.splice(zz,1);
       enemiesArray.splice(yy,1);
       }//end if
}//end for
 }//end for

如果要在库中创建剪辑实例,而不是复制已创建的对象,则似乎需要使用
attachMovie()
而不是
duplicateMovieClip
。在这种情况下,请按如下方式重写创建代码:

_root.attachMovie(circlebase, "circle" + circleCount, circleCount);
bulletArray.push(_root["circle"+circleCount]);

我解决了。这是因为我使用的是duplicateMovieClio的全局版本,而不是类版本。再次感谢

我认为你需要重新表述你的问题,以便得到帮助。据我所知,您没有共享问题的代码,“访问它们的属性或方法”,而且“如果我更改了hitTest对象,removeMovieClip确实有效”——如果有效,那么您的问题到底是什么?例如,跟踪(bulletArray[0]。_width)返回“未定义”,而removeMovieClip(bulletArray[0])将从舞台上移除该对象。当我说更改命中率最高的对象时,我的意思是如果我将其更改为简单地说“circle0”和“wiggler0”,这是对象的实例名称,而不是从数组中提取它们而不是bulletArray。push(“circle”+circleCount)向数组中添加字符串,比如“circle1”,而不是在MovieClip中添加引用?如果我没有记错AS2,duplicateMovieClip()会返回对所创建的MovieClip的引用,因此您可以尝试将其存储在局部变量中,然后将其添加到数组中。我尝试使用bulletArray.push(duplicateMovieClip(circlebase,“circle”+circleCount,circleCount));,但这仍然返回未定义的结果。我已经用“_root”试过了,但是没有。同样,如果我跟踪复制方法,它会返回“undefined”,因为某种原因,我实际上是自己用基于类的复制方法而不是全局方法解决的。不过还是谢谢你
_root.attachMovie(circlebase, "circle" + circleCount, circleCount);
bulletArray.push(_root["circle"+circleCount]);