我想在as3
中这样做for (var i = 0; i < 8; i++) {
var clip = "markerMC" + i;
this.scoreGridMC[clip]._visible = false;
}
但我总是遇到编译错误。
任何帮助,
...谢谢
答案 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代码,以防不是这样。
祝你好运。