在循环中为每个最大值添加 X 数量的 addChild

adding X amount of addChild per maxvalue in loop

作业是根据测验的分数生成几根浅色和深色羽毛。浅色羽毛代表正确的点(light_feather),深色羽毛代表错误的点(dark_feather)(每个都被跟踪)。所有的羽毛都应该排在一条线上,这意味着首先是浅色羽毛,然后是深色羽毛。我弄清楚了测验动态,我在这里发布的功能仅适用于当他们按下结束测验时。

var light_feather:LightFeather = new LightFeather();
var dark_feather:DarkFeather = new DarkFeather();

var good_answers:uint = 0;
var bad_answers:uint = 0;

function avsluttFunc (evt:MouseEvent) 
{   
    var sum_LightFeatherX:Number = 0;
    for (var i = 0; i < good_answers; i++) {
        addChild(light_feather);
        light_feather.x += 12 + (i*16);
        light_feather.y = 0;
        trace("Lys X-verdi: " + light_feather.x);
        sum_LightFeatherX += Number(light_feather.x);
        return sum_LightFeatherX;
    }
    trace(sum_LightFeatherX);

    dark_feather.x += sum_LightFeatherX;
    for (var j = 1; j <= bad_answers; j++) {
        addChild(dark_feather);
        dark_feather.x += 12 + (j*16);
        dark_feather.y = 0;
        trace("Mørk X-verdi: " + dark_feather.x);
    }

    /*
        //Resetter poengsummen
        good_answers = 0;
        bad_answers = 0;
    */
}

你可以只使用一个 for 循环来完成你正在寻找的事情,看看:

var good_answers:uint = 2;
var bad_answers:uint = 4;

function avsluttFunc(evt:MouseEvent) 
{           
    for (var i:int = 0; i < good_answers + bad_answers; i++) {
        var feather:DisplayObject = i < good_answers ? new LightFeather() : new DarkFeather();  
            feather.x += 12 + i * (feather.width + 1);
            feather.y = 0;
        addChild(feather);          
    }
}

此代码示例将在 2 个 LightFeather 个实例旁边创建 4 个 DarkFeather 个实例。

编辑:

如何将对象添加到数组?

// feathers array should be accessible for both codes (adding and removing objects)
var feathers:Array = [];

for (var i:int = 0; i < good_answers + bad_answers; i++) {
    var feather:DisplayObject = i < good_answers ? new LightFeather() : new DarkFeather();  
    addChild(feather);
    feathers.push(feather);
}

然后将它们从舞台上移除,您可以这样做:

for (var i:int = 0; i < feathers.length; i++) {
    var feather:DisplayObject = DisplayObject(feathers[i]);
        feather.parent.removeChild(feather);
}

希望能帮到你。