Loaderinfo event listener not working

Hi,

I am which requires few things like;

  1. swf should play if client open it at his end (this will be detected by checking a text file which has variable on the local drive say “C”)
  2. swf should preload if finds flashvars from HTML file on server by user
  3. if both of the above conditions dosent work then swf should not play

I have succeeded some what in this. if i run the file without preloader it work fine. but when i add preloader to it something goes wrong.

Please check the code;

import flash.text.TextField;

import flash.events.ProgressEvent;

import flash.events.Event;
import flash.display.MovieClip;
 
 
var Progress_txt:TextField = new TextField();
 
var myFlashVar:String;
var myVar:String;
 
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
 
for (myVar in paramObj)
{
    myFlashVar = String(paramObj[myVar]);
}
 
checkFlashvar();
 
function checkFlashvar():void
{
    trace("CHECKING Flash VAR");
    if (myFlashVar=="varInHTML")
    {
        InternalPreloader();
        trace("pass var found");
    }
    else
    {
        trace("VAR NOT FOUND");
        gotoLocalVar();
    }
}
 
function gotoLocalVar():void
{
    var myLoader:URLLoader = new URLLoader();
    myLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
    myLoader.addEventListener(Event.COMPLETE, chkLocalVar);
 
    myLoader.addEventListener(IOErrorEvent.IO_ERROR, onLoadError);
    myLoader.load(new URLRequest("C:/key.txt"));
 
    function chkLocalVar(event:Event):void
    {
        if (myLoader.data.passKey == "grantAccess")
        {
            trace("pass key found");
            InternalPreloader();
 
        }
        else
        {
            trace("Local VAR NOT FOUND");
            stop();
            parent.removeChild(this);
 
        }
    }
}
 
function onLoadError(evt:IOErrorEvent):void
{
    trace("TXT FILE NOT FOUND");
    stop();
    parent.removeChild(this);
}
 
 
function InternalPreloader():void
{
    stop();
    Progress_txt.x = stage.stageWidth / 2;
    Progress_txt.y = stage.stageHeight /2;
 
    addChild(Progress_txt);
    trace("load progress event");
    loaderInfo.addEventListener(ProgressEvent.PROGRESS,onProgress);
    loaderInfo.addEventListener(Event.COMPLETE, onComplete);
}
 
function onProgress(p:ProgressEvent):void
{
    Progress_txt.text = String(Math.floor((p.bytesLoaded/p.bytesTotal)*100));
    trace("checking progress");
}
 
function onComplete(d:Event):void
{
    trace("loaded, start my movie.");
    play();
    loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onProgress);
    loaderInfo.removeEventListener(Event.COMPLETE, onComplete);
 
}

i am not getting where i am doing wrong thing…