【发布时间】:2011-08-05 17:55:47
【问题描述】:
我正在尝试在 as3 中执行此操作
for (var i = 0; i < 8; i++) {
var clip = "markerMC" + i;
this.scoreGridMC[clip]._visible = false;
}
但我总是遇到编译错误。
任何帮助,
谢谢....
【问题讨论】:
标签: flash actionscript-3 actionscript-2 flash-cs5
我正在尝试在 as3 中执行此操作
for (var i = 0; i < 8; i++) {
var clip = "markerMC" + i;
this.scoreGridMC[clip]._visible = false;
}
但我总是遇到编译错误。
任何帮助,
谢谢....
【问题讨论】:
标签: flash actionscript-3 actionscript-2 flash-cs5
这是 as3,taskinoor 的答案是 as3 仅当您在 Flash IDE 中将这些名称设置为影片剪辑实例名称时...
选项#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";
作为参考,要遍历影片剪辑的所有子项,请尝试类似(这是选项#2):
for (var i = 0; i < this.scoreGridMC.numChildren; i++) {
this.scoreGridMC.getChildAt(i).visible = false;
}
再一次,taskinoor 的回答也是有效的,但您必须通过 flash IDE 手动创建 mc 并在其属性面板中为其分配实例名称...
此外,当您收到编译错误时,请在 google 上搜索,直到您在网上找到解决方案。网络就在那里,你只需要使用它。此外,出于明显的原因,您可能希望在问题中发布这些编译错误以及您的 as3 代码,以防不是这样。
祝你好运。
【讨论】: