Code for "laser beam"... almost there

the code below is basically a code i created for a turret on stage that fires a “laser beam”.
if the “laser beam” hits a wall / object / obstacle, it will stop right there and no longer progress…
it works great, except for one thing…

var radians:Number;
var begX:Number;
var begY:Number;
var endX:Number;
var endY:Number;
var maxDist:Number = 500;

var laserIsOn:Boolean = false;

stage.addEventListener(Event.ENTER_FRAME, runEnterFrame);
stage.addEventListener(MouseEvent.MOUSE_DOWN, fireGun);
stage.addEventListener(MouseEvent.MOUSE_UP, stopGun);

function runEnterFrame(event:Event):void
{
    radians = Math.atan2(mouseY - turret.y, mouseX - turret.x);
    var degrees:Number = radians * 180 / Math.PI;
    turret.barrel.rotation = degrees;
    
    if(laserIsOn)
    {
        while(laserEmptyMC.numChildren)
        {
            laserEmptyMC.removeChildAt(0);
        }
        
        var ld:Sprite = new Sprite();
        
        ld.graphics.lineStyle(1, 0xFF0000);
    
        // determine start point for laser
        begX = Math.cos(radians) * 61 + turret.x;
        begY = Math.sin(radians) * 61 + turret.y;
        
        ld.graphics.moveTo(begX, begY);
        
        // determine end point for laser
        for(var i:Number = 0; i < maxDist; i++)
        {
            endX = Math.cos(radians) * i + turret.x;
            endY = Math.sin(radians) * i + turret.y;
            
            if(wallsMC.getChildAt(4).hitTestPoint(endX, endY))
            {
                break;
            }
            if(wallsMC.getChildAt(3).hitTestPoint(endX, endY))
            {
                break;
            }
            if(wallsMC.getChildAt(2).hitTestPoint(endX, endY))
            {
                break;
            }
            if(wallsMC.getChildAt(1).hitTestPoint(endX, endY))
            {
                break;
            }
            if(wallsMC.getChildAt(0).hitTestPoint(endX, endY))
            {
                break;
            }
        }
        
        ld.graphics.lineTo(endX, endY);
        
        laserEmptyMC.addChild(ld);
    }
    
}

function fireGun(event:MouseEvent):void
{
    laserIsOn = true;
}

function stopGun(event:MouseEvent):void
{
    while(laserEmptyMC.numChildren)
    {
        laserEmptyMC.removeChildAt(0);
    }
        
    laserIsOn = false;
}

the code works great… however, i’m trying to replace all those repetitive “if” statements into a simple “for loop”… but i’m not getting the same result…

this is the code with the “for loop” version…

var radians:Number;
var begX:Number;
var begY:Number;
var endX:Number;
var endY:Number;
var maxDist:Number = 500;

var laserIsOn:Boolean = false;

stage.addEventListener(Event.ENTER_FRAME, runEnterFrame);
stage.addEventListener(MouseEvent.MOUSE_DOWN, fireGun);
stage.addEventListener(MouseEvent.MOUSE_UP, stopGun);

function runEnterFrame(event:Event):void
{
    radians = Math.atan2(mouseY - turret.y, mouseX - turret.x);
    var degrees:Number = radians * 180 / Math.PI;
    turret.barrel.rotation = degrees;
    
    if(laserIsOn)
    {
        while(laserEmptyMC.numChildren)
        {
            laserEmptyMC.removeChildAt(0);
        }
        
        var ld:Sprite = new Sprite();
        
        ld.graphics.lineStyle(1, 0xFF0000);
    
        // determine start point for laser
        begX = Math.cos(radians) * 61 + turret.x;
        begY = Math.sin(radians) * 61 + turret.y;
        
        ld.graphics.moveTo(begX, begY);
        
        // determine end point for laser
        for(var i:Number = 0; i < maxDist; i++)
        {
            endX = Math.cos(radians) * i + turret.x;
            endY = Math.sin(radians) * i + turret.y;
            
            for(var j:Number = 0; j < (wallsMC.numChildren - 1); j++)
            {
                if(wallsMC.getChildAt(j).hitTestPoint(endX, endY))
                {
                    break;
                }
            }
        }
        
        ld.graphics.lineTo(endX, endY);
        
        laserEmptyMC.addChild(ld);
    }
    
}

function fireGun(event:MouseEvent):void
{
    laserIsOn = true;
}

function stopGun(event:MouseEvent):void
{
    while(laserEmptyMC.numChildren)
    {
        laserEmptyMC.removeChildAt(0);
    }
        
    laserIsOn = false;
}

so what the hell am i doing wrong and what is the right way of doing this?