确定分配给数组AS3中的变量的movieclip



请原谅我的术语,我没有受过正确的教育。

假设我有多个移动IP变量

var rblock1:MovieClip = new Rblock();
var rblock2:MovieClip = new Rblock();
var rblock3:MovieClip = new Rblock();
var yblock1:MovieClip = new Yblock();
var yblock2:MovieClip = new Yblock();
var yblock3:MovieClip = new Yblock();

我把它们添加到阵列中

var blockarray:Array = new Array(rblock1, rblock2, rblock3, yblock1, yblock2, yblock3);
var block

我想创建一个带有if语句的for循环,该语句在变量是Rblock而不是Yblock时触发,例如

for each (block in blockarray)
{ 
if (block==Rblock)
{ 
trace("rblock");
}
}

问题是"if(block==Rblock("显然不起作用。这应该怎么写?

您显然想通过检查其类名来检查块是红色还是黄色。你可以这样做:

if (block is Rblock) {...} // yes, red

我已经找到了一个并非完美解决方案的变通方案,它只适用于某些场景。。。

如果每个类都有一个独特的特征,你可以用这种方式来识别它,例如。。。

如果Rblock类定义的所有变量都比Yblock类宽,你可以说

if (block.width>x) { trace(Rblock); }

就像我说的,这只是一个变通办法,只适用于由不同类定义的movieclip变量,如果有人有实际的解决方案,请发布

最新更新