AS3 - Multiple ColorTransform object instances not created in loop

I thought this would be simple but for some reason I’m having all kinds of problems. Why won’t the for loop create a new c instance each time the loop increments, like it does for sHolder and s? …And, assuming it is possible to make it do this, how can each instance be given an identifier that can be accessed dynamically, like sHolder and s in the traceSomething function?


package {
    import flash.display.Sprite;
    import flash.geom.ColorTransform;
    import flash.display.Shape;

    public class ColorTest extends Sprite{
        
        private var sHolder:Sprite;
        private var s:Shape;
        private var c:ColorTransform;
        
        public function ColorTest(){
        for(var i:uint = 0; i < 5; i++){
            sHolder = new Sprite();
            sHolder.name = "sHolder" + i;
            addChild(sHolder);
            sHolder.x = 50;
            sHolder.y = 25 * i;
            s = new Shape();
            s.name = "s" + i;
            s.graphics.beginFill(0xFFFFFF,1);
            s.graphics.drawRoundRect(-10, 10, 20, 20, 4, 4)
            s.graphics.endFill();
            sHolder.addChild(s);
            c = new ColorTransform();
            c = sHolder.transform.colorTransform;
            c.redOffset = -50;
            c.blueOffset = -150;
            c.greenOffset = -255;
            sHolder.transform.colorTransform = c;
            }
            traceSomething();
        }
        
        public function traceSomething():void{
            for(var i:uint = 0; i < 5; i++){
                var t:Sprite = getChildByName("sHolder" + i) as Sprite;
                trace(t.name);
                trace(t.getChildByName("s" + i).name);
            }
        }
    }

Fingers