0

我在 AS3 中有一个完美运行的代码,但是我有许多重复的方法和函数,它们是相同的但使用不同的实例名称,所以我想用一个变量替换实例名称以避免重写太多代码。

这是我的代码的一部分:

urb_mc.urb.select(0);

trace("Urb: " + urb_mc.urb.selectedIndex);

在这种情况下,我想用一个变量替换“urb”,所以我尝试了这个:

var estado = currentLabel;
trace("este es mi estado " + estado);// this is ok = "urb"

//now I need to inset the variable in my code:

String(estado)+_mc.String(estado).select(0);//thi is so wrong!

trace("Urb: " + String(estado)+_mc.String(estado).selectedIndex);//thi is so wrong!

任何的想法?

提前致谢

4

1 回答 1

1

尝试使用:

this[estado+"_mc"][estado].select(0);
trace(this[estado+"_mc"][estado].selectedIndex);

对不起所有的编辑!

感谢挑战!我了解到对象的多维数组运算符之类的东西。

第2部分

试试这个:

var tweenNameArray:Array = ["Name1", "Name2", "Name3"]

for (var i:int = 0; i > tweenNameArray.length(); i++){
  var myTween:Tween = new Tween();
  myTween.name = String("myTween_" + estado + "_in"); // You may want to try .toString();
}

然后引用补间应该像这样工作:

Tween(MovieClip(this.stage.getChildByName("myTween_" + estado + "_in")).whateverMethod(); // Try with and without the MovieClip().

我现在就说,不建议这样做。

于 2012-08-10T04:45:13.197 回答