这个[“instancename”]语法

时间:2010-12-09 14:16:44

标签: flash actionscript-3

我看到我的同事经常使用这种可怕的语法:

var mc1: MovieClip;
var mc2: MovieClip;
var mc3: MovieClip;
var mc4: MovieClip;
var mc5: MovieClip;

for (var i:int = 1; i <= 5; i++) { 
   addChild(this["mc" + i]); // UURRGGHHH
   TweenLite.to(this["mc"+i], 1, {alpha: 0}); // FNNNGGGGGHHHH
}

因为我是一个专横的草皮,我正在列出他们应该使用数组进行迭代的原因列表,而不是令人讨厌的方括号语法。我知道使用这种语法是错误的,但我想不出足够的令人信服的理由,为什么他们应该放弃它。

请告诉我一些事实。

4 个答案:

答案 0 :(得分:8)

  • 使用数组可以轻松添加其他项目。您不必声明新变量。
  • 添加其他项目时,您无需修改​​for循环的限制。
  • 如果需要,您只需要重命名一个变量。
  • 当您通过语义上有用的定义识别出一系列事物时,它可以帮助您以富有成效的方式思考。

答案 1 :(得分:6)

型的安全性。

方括号语法不会产生合适的类型,因此编译器可以在编译时检查问题。我对那些因类型问题引起的运行时异常来找我的人毫不留情。

说真的,AS3中的类型系统是有原因的。用它。不要想办法解决它。它可以防止出现问题。

答案 2 :(得分:4)

我会在这里与你争论,并说你不应该使用数组,而是向量

答案 3 :(得分:0)

事实:我今天下午只是采用了类似的方式。

但是,以下方式可能会遇到'他们'的预期:

  

var mcs:Array = [mc1,mc2,mc3,mc4,mc5];

     

for(var i:int = 1; i&lt; = mcs.length; i ++)
  {
     的addChild(MCS [I]);
     TweenLite.to(mcs [i],1,{alpha:0});
  }