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
Arrays as3:如何从从从库中加载的同一MovieClip数组中访问作为唯一对象/MovieClip的MovieClip_Arrays_Actionscript 3_Loops_Movieclip - Fatal编程技术网

Arrays as3:如何从从从库中加载的同一MovieClip数组中访问作为唯一对象/MovieClip的MovieClip

Arrays as3:如何从从从库中加载的同一MovieClip数组中访问作为唯一对象/MovieClip的MovieClip,arrays,actionscript-3,loops,movieclip,Arrays,Actionscript 3,Loops,Movieclip,我试图一次将同一部电影的多个拷贝添加到舞台上 我有一个循环,它填充阵列并生成电影剪辑到舞台上 以及为每个movieClip添加click EventListener的循环 但是我错过了分别访问每部电影的神奇代码 通过单击将其从舞台上移除 var numOfClips:Number = 5; var mcArray:Array = new Array(); for(var i=0; i<numOfClips; i++) { var usd:mcUSD = new mcUSD();

我试图一次将同一部电影的多个拷贝添加到舞台上

我有一个循环,它填充阵列并生成电影剪辑到舞台上

以及为每个movieClip添加click EventListener的循环

但是我错过了分别访问每部电影的神奇代码 通过单击将其从舞台上移除

var numOfClips:Number = 5;
var mcArray:Array = new Array();

for(var i=0; i<numOfClips; i++)
{
    var usd:mcUSD = new mcUSD();

//genrate random x , y position----------------------------
    var randY:Number = Math.floor(Math.random()*460) + 120;
    var randX:Number = Math.floor(Math.random()*350) + 60; 
    usd.x = randX;
    usd.y = randY;  
//---------------------------------------------------------
    mcArray.push(usd);
    addChild(usd);
}

for(var m:int = 0; m<mcArray.length; m++){
    usd.addEventListener(MouseEvent.CLICK, colectmoney);
}

function colectmoney(e:MouseEvent): void { 
     removeChild(usd);
}
var numOfClips:Number=5;
var mcArray:Array=new Array();
对于(var i=0;i尝试以下方法:

import flash.events.MouseEvent;

var numOfClips:Number = 5;
var mcArray:Array = new Array();

for(var i=0; i<numOfClips; i++)
{
var usd:mcUSD = new mcUSD();

//genrate random x , y position----------------------------
var randY:Number = Math.floor(Math.random()*460) + 120;
var randX:Number = Math.floor(Math.random()*350) + 60; 
usd.x = randX;
usd.y = randY;  
//---------------------------------------------------------
mcArray.push(usd);
addChild(usd);
}

addEventListener(MouseEvent.CLICK, mouseClickHandler);

function mouseClickHandler(e:MouseEvent) : void {
removeChild(mcArray[mcArray.indexOf(e.target)]);
}
导入flash.events.MouseEvent;
变量numOfClips:Number=5;
var mcArray:Array=new Array();

对于(var i=0;ithats帮了我很多忙,非常感谢您,它的工作非常好!:)此解决方案有一个问题:如果
mcUSD
movie clip的子对象是交互式对象,它们将发送“单击”事件,因此在
mouseClickHandler()中
e.target
将引用
mcUSD
对象的子对象,而不是
mcUSD
对象本身。这将导致
indexOf()
返回
-1
和抛出运行时错误的语句。因此,我建议您将事件侦听器附加到每个
mcUSD
对象,然后在事件侦听器中,搜索
mcArray
以查找
e.currentTarget