Arrays as3:如何从从从库中加载的同一MovieClip数组中访问作为唯一对象/MovieClip的MovieClip
我试图一次将同一部电影的多个拷贝添加到舞台上 我有一个循环,它填充阵列并生成电影剪辑到舞台上 以及为每个movieClip添加click EventListener的循环 但是我错过了分别访问每部电影的神奇代码 通过单击将其从舞台上移除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();
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
。