如何在as3中遍历MovieClip中的项目

时间:2011-08-05 17:55:48

标签: flash actionscript-3 actionscript-2 flash-cs5

我想在as3

中这样做
for (var i = 0; i < 8; i++) {
    var clip = "markerMC" + i;
    this.scoreGridMC[clip]._visible = false;
}

但我总是遇到编译错误。

任何帮助,

...谢谢

1 个答案:

答案 0 :(得分:2)

这是as3,只有在flash IDE中将这些名称设置为movieclip实例名称时,taskinoor的答案才为as3。

选项#1:getChildByName(“childName”);

for (var i = 0; i < 8; i++) {
    var clip = "markerMC" + i;
    this.scoreGridMC.getChildByName(clip).visible = false;
}

要使上述功能正常工作,您需要在创建动画片段时设置mc.name,如mc.name =“markerMC”+0;和+1和...一直到+8;对于各自的动画片段。

var mc:MovieClip = new MovieClip(); // or new MarkerMC() or whatever it is in library properties for the mc
this.scoreGridMC.name = "markerMC0";

作为参考,要通过一个movieclip的所有孩子尝试类似的东西(这是选项#2):

for (var i = 0; i < this.scoreGridMC.numChildren; i++) {
    this.scoreGridMC.getChildAt(i).visible = false;
}

再次,taskinoor的答案也是有效的,但你必须通过flash IDE手动创建mc,并在属性面板中为它们分配实例名称......

此外,当您收到编译错误时,请将其谷歌搜索,直到您在网上找到解决方案。网就在那里,你只需要使用它。此外,您可能希望在显而易见的原因中发布这些编译错误以及as3代码,以防不是这样。

祝你好运。