Car racing

I found this highway car racing somewhere else, I need it to be in As2 or the same type, anybody who got it ?

package
{
import flash.display.MovieClip;
import flash.events.Event;

public class Main5 extends MovieClip
{
    //Depth of the visible road
    private const roadLines:int = 150;
    //Dimensions of the play area.
    private const resX:int = 480;
    private const resY:int = 320;
    //Line of the player's car.
    private const playerLine:int = 8;
    //All the road lines will be accessed from an Array.
    private var zMap:Array = [];
    private var lines:Array = [];
    private var halfWidth:Number;
    private var lineDepth:int;
    private const widthStep:Number = 1;
    private var playerZ:Number;
    private var speed:int = 20;
    private var texOffset:int = 100;
    private var rx:Number; //Each line's x position
    private var dx:Number; //Curve amount per segment
    private var ddx:Number = 0.02; //Curve amount per line
    private var segmentY:int = roadLines;
    private var nextStretch = "Straight";
    private var ry:Number;
    private var dy:Number;
    private var ddy:Number = 0.01; //A little less steep than the curves.
    
    public function Main5()
    {
        for (var i:int = 0; i < roadLines; i++)
        {
            zMap.push(1 / (i - resY / 2));
        }
        
        playerZ = 100 / zMap[playerLine];
        for (i = 0; i < roadLines; i++)
        {
            zMap* *= playerZ;
        }
        
        lineDepth = numChildren;
        for (i = 0; i < roadLines; i++)
        {
            var line = new Road();
            lines.push(line);
            addChildAt(line, lineDepth);
            line.x = resX / 2;
            line.y = resY - i;
        }
        
        halfWidth = resX / 2;
        for (i = 0; i < roadLines; i++)
        {
            lines*.scaleX = halfWidth / 60 - 1.2;
            halfWidth -= widthStep;
        }
        
        addEventListener(Event.ENTER_FRAME, race);
    }
    
    private function race(event:Event):void
    {
        rx = resX / 2;
        ry = resY;
        dx = 0;
        dy = 0;
        for (var i:int = 0; i < roadLines; i++)
        {
            if ((zMap* + texOffset) % 100 > 50)
                lines*.gotoAndStop(1);
            else
                lines*.gotoAndStop(2);
            lines*.x = rx;
            lines*.y = ry;
            
            if (nextStretch == "Straight")
            {
                if (i >= segmentY)
                {
                    dx += ddx;
                    dy -= ddy;
                }
                else
                {
                    dx -= ddx / 64;
                    dy += ddy;
                }
            }
            else if (nextStretch == "Curved")
            {
                if (i <= segmentY)
                {
                    dx += ddx;
                    dy -= ddy;
                }
                else
                {
                    dx -= ddx / 64;
                    dy += ddy;
                }
            }
            rx += dx;
            ry += dy - 1;
        }
        texOffset = texOffset + speed;
        while (texOffset >= 100)
        {
            texOffset -= 100;
        }
        segmentY -= 1;
        while (segmentY < 0)
        {
            segmentY += roadLines;
            if (nextStretch == "Curved")
                nextStretch = "Straight";
            else
                nextStretch = "Curved";
        }
    }
}

}