【问题标题】:How to create a series of class instances in a for loop, as3如何在for循环中创建一系列类实例,as3
【发布时间】:2012-07-12 04:15:13
【问题描述】:

在我的库中,我有一堆名为tip1、tip2、tip3、tip4...等等的类。是否可以使用 for 循环在舞台上创建每个实例的一个实例?我试过这个,但它似乎没有用。

var tips:int = 12;
for(var i:int = 1; i<=tips; i++){
    var tipName:String = "tip"+i

    var tip:MovieClip = new tipName();
    tip.name = "tip" + i
    tip.x = stage.width;
    tip.y = 0;
    addChild(tip);
}

任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: actionscript-3 for-loop addchild


    【解决方案1】:

    您缺少“getDefinitionByName”部分。

    // Up top
    import flash.utils.getDefinitionByName;
    
    // Down below
    var tips:int = 12;
    for (var i:int = 1; i < tips; ++i ) {
      var myClass:Class = getDefinitionByName('tip' + i) as Class;
      var tip:Object = new myClass();
      tip.name = "tip" + i; 
    
    ....
    
    }
    

    【讨论】:

      【解决方案2】:

      代替

      var tip:MovieClip = new tipName();
      

      试试(凭记忆写)

      var clazz:Class = getDefinitionByName(tipName) as Class;
      var tip:MovieClip = new clazz();
      

      此外,您通常希望使用stage.stageWidth 而不是stage.width,因为后者将返回舞台边界框宽度(可能与 swf 文件覆盖的区域不同)。

      【讨论】:

        猜你喜欢
        • 2018-12-20
        • 1970-01-01
        • 2018-04-02
        • 2020-03-31
        • 1970-01-01
        • 1970-01-01
        • 2013-03-17
        • 1970-01-01
        • 2016-09-11
        相关资源
        最近更新 更多