FLV works local, not on Webserver

Hi Folks,

I’ve created an animation that plays an FLV and listens for cue points. I have it working locally perfectly, but when I upload to a web server it will not work. It thows an asyncError that I am handling, but don’t understand.

I’ve attached my code below

 
import flash.display.Sprite;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.media.Video;
import flash.events.AsyncErrorEvent;
import flash.display.Graphics;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
var cuePointNumber:Number=0;
var metadataArray:Array = new Array();
var yArray:Array=[0,20];
var xmlArray:Array = new Array();
var newY:Number=20;
var spacer:Number=20;
var maxHeight:Number=450;
var XMLLoader:URLLoader = new URLLoader();
var XMLrequest:URLRequest=new URLRequest("../ObjectFiles/swfIFL0480011.xml");
try {
 XMLLoader.load(XMLrequest);
} catch (error:Error) {
 trace("Unable to load requested document.");
}
//add container for conversation
var myContainer:MovieClip = new MovieClip();
myContainer.y = 20;
addChild(myContainer);
configureListeners(XMLLoader);
createStageItems();
var customClient:Object = new Object();
customClient.onCuePoint = cuePointHandler;
customClient.onMetaData = metaDataHandler;
var videoConnection:NetConnection = new NetConnection();
videoConnection.connect(null);
//
var videoStream:NetStream=new NetStream(videoConnection);
videoStream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
//videoStream.client=this;
videoStream.client=customClient;
videoStream.play("../ObjectFiles/auIFL0480011.flv");
//
var video:Video = new Video();
video.attachNetStream(videoStream);
addChild(video);
//
var netErrorText:TextField = new TextField();
netErrorText.y = 30;
netErrorText.autoSize = TextFieldAutoSize.LEFT;
addChild(netErrorText);
//
videoConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
videoStream.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler);
function configureListeners(dispatcher:IEventDispatcher):void {
 dispatcher.addEventListener(Event.COMPLETE, completeHandler);
 dispatcher.addEventListener(Event.OPEN, openHandler);
 dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
 dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
 dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
 dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
function createStageItems() {
 //display header
 var myHeader:mcHeader = new mcHeader();
 myHeader.x = 839.5;
 myHeader.y = 1.5;
 addChild(myHeader);
 //display footer
 var myFooter:mcFooter = new mcFooter();
 myFooter.x = 840;
 myFooter.y = 483;
 addChild(myFooter);
 //display start
 var myStart:mcStart = new mcStart();
 myStart.x = 741;
 myStart.y = 512.5;
 addChild(myStart);
 myStart.name = "start_mc";
 myStart.addEventListener(MouseEvent.CLICK,clickHandler);
 //display prev
 var myPrev:mcPrev = new mcPrev();
 myPrev.x = 808.1;
 myPrev.y = 512.5;
 addChild(myPrev);
 myPrev.name = "prev_mc";
 myPrev.addEventListener(MouseEvent.CLICK,clickHandler);
 //display next
 var myNext:mcNext = new mcNext();
 myNext.x = 875.3;
 myNext.y = 512.5;
 addChild(myNext);
 myNext.name = "next_mc";
 myNext.addEventListener(MouseEvent.CLICK,clickHandler);
 //display end
 var myEnd:mcEnd = new mcEnd();
 myEnd.x = 942.5;
 myEnd.y = 512.5;
 addChild(myEnd);
 myEnd.name = "end_mc";
 myEnd.addEventListener(MouseEvent.CLICK,clickHandler);
}
function completeHandler(event:Event):void {
 var myXML:XML=XML(event.target.data);
 trace("completeHandler: " + event.target);
 parseXML(myXML);
 displayGraphic();
}
function openHandler(event:Event):void {
 trace("openHandler: " + event);
}
function progressHandler(event:ProgressEvent):void {
 trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
}
function securityErrorHandler(event:SecurityErrorEvent):void {
 trace("securityErrorHandler: " + event);
}
function httpStatusHandler(event:HTTPStatusEvent):void {
 trace("httpStatusHandler: " + event);
}
function ioErrorHandler(event:IOErrorEvent):void {
 trace("ioErrorHandler: " + event);
}
function clickHandler(e:MouseEvent):void {
 trace(e.target.name + " clicked");
 switch (e.target.name) {
  case "start_mc" :
   if (cuePointNumber!=1) {
    for (var i:Number = cuePointNumber; i>0; i--) {
     removeContainer(i);
    }
    cuePointNumber=0;
    videoStream.seek(metadataArray[cuePointNumber+1]);
   }
   if (myContainer.height < maxHeight && myContainer.y<0) {
    var myStartTween:Tween = new Tween(myContainer, "y", Regular.easeOut, myContainer.y, yArray[1], .5, true);
   }
   break;
  case "end_mc" :
   if (cuePointNumber!=metadataArray.length-1) {
    var myInfoObject:Object = new Object();
    for (var j:Number = cuePointNumber; j<metadataArray.length-2; j++) {
     cuePointHandler(myInfoObject);
     //onCuePoint(myInfoObject);
    }
    videoStream.seek(metadataArray[metadataArray.length-1]);
   }
   break;
  case "next_mc" :
   if (cuePointNumber!=metadataArray.length-1) {
    videoStream.seek(metadataArray[cuePointNumber+1]);
   }
   break;
  case "prev_mc" :
   if (cuePointNumber!=1) {
    removeContainer(cuePointNumber);
    removeContainer(cuePointNumber-1);
    videoStream.seek(metadataArray[cuePointNumber-1]);
    cuePointNumber-=2;
   }
   if (myContainer.height < maxHeight && myContainer.y<0) {
    var myPrevTween:Tween = new Tween(myContainer, "y", Regular.easeOut, myContainer.y, yArray[1], 1, true);
   }
   break;
  default :
   trace("default");
 }
}
function parseXML(myXML:XML) {
 //trace(myXML.sentence);
 var i:Number=1;
 for each (var sentence:XML in myXML..sentence) {
  xmlArray*=[sentence.@speaker,sentence];
  i++;
 }
}
function asyncErrorHandler(e:AsyncErrorEvent) {
 var errorText:TextField = new TextField();
 errorText.autoSize = TextFieldAutoSize.LEFT;
 errorText.text = e.text + "	" + e;
 addChild(errorText);
 trace(e.text);
}
function netStatusHandler(e:NetStatusEvent):void {
  trace("netStatusHandler:  " + e.info.code);
  netErrorText.text = "netStatusHandler:  " + e.info.code;
  switch (e.info.code)
  {
    case "NetStream.Play.Start":
       trace("PLAYING");
    break;
    case "NetStream.Play.Stop":
       trace("STOPPED");
    break;
   }
}
function cuePointHandler(infoObject:Object):void {
//function onCuePoint(infoObject:Object):void {
 //
 cuePointNumber++;
 trace("
"+cuePointNumber+"	"+xmlArray[cuePointNumber][0]+"	"+yArray[cuePointNumber]+"
	"+xmlArray[cuePointNumber][1]);
 //
 var textHeight:Number = new Number();
 var container:Sprite = new Sprite();
 //
 container.name="container"+cuePointNumber;
 trace("	Container Name:	"+container.name);
 //add avatar
 displayAvatar(container);
 //add text
 textHeight=displayText(container);
 trace("	Text Height:	"+textHeight);
 //draw bubble
 if (textHeight<40) {
  drawRoundedRectangle(container,271,40,20,0xFFFFFF);
 } else {
  drawRoundedRectangle(container,271,textHeight,20,0xFFFFFF);
 }
 stage.scaleMode=StageScaleMode.NO_SCALE;
 container.x=stage.stageWidth-container.width-60;
 myContainer.addChild(container);
 container.y=yArray[cuePointNumber];
 yArray[cuePointNumber+1]=yArray[cuePointNumber]+container.height+spacer;
 trace("Y POS:	"+yArray[cuePointNumber]);
 trace("	Overall Height:	"+myContainer.height);
 if (myContainer.height > maxHeight) {
  var newY:Number = new Number();
  //tween container
  trace("Bigger than 500!");
  newY = maxHeight-spacer-myContainer.height;
  trace("	My Container Y:	"+myContainer.y);
  trace("	newY:	"+newY);
  var myTween:Tween = new Tween(myContainer, "y", Regular.easeOut, myContainer.y, newY, 1, true);
 }
}
function removeContainer(containerNumber:Number) {
 myContainer.removeChild(myContainer.getChildByName("container"+containerNumber));
}
function displayAvatar(container:Sprite) {
 trace("	Display Avatar Called - CuePoint Number:	"+cuePointNumber);
 var loader:Loader = new Loader();
 loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadHandler);
 loader.load(new URLRequest(xmlArray[cuePointNumber][0]));
 function loadHandler(e:Event) {
  container.addChild(loader);
 }
}
function displayGraphic() {
 trace("	Display Graphic Called - CuePoint Number:	"+cuePointNumber);
 var loader:Loader = new Loader();
 loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadHandler);
 loader.load(new URLRequest("../ObjectFiles/gIFL0480011.gif"));
 function loadHandler(e:Event) {
  addChildAt(loader,0);
 }
}
function displayText(container:Sprite):Number {
 var myText:TextField = new TextField();
 myText.defaultTextFormat=textFormat();
 myText.width=260;
 myText.multiline=true;
 myText.wordWrap=true;
 myText.embedFonts=true;
 myText.antiAliasType=flash.text.AntiAliasType.ADVANCED;
 myText.autoSize=TextFieldAutoSize.LEFT;
 myText.text=xmlArray[cuePointNumber][1];
 myText.x=60;
 container.addChild(myText);
 return myText.height;
}
function textFormat():TextFormat {
 var myFont:Font = new dinRegular();
 var myTextFormat:TextFormat = new TextFormat();
 myTextFormat.font=myFont.fontName;
 myTextFormat.color=0x002D62;
 myTextFormat.size=12;
 return myTextFormat;
}
function metaDataHandler(infoObject:Object):void {
//function onMetaData(infoObject:Object):void {
 trace("onMetaData >");
 trace("	Number of cue points: " + infoObject.cuePoints.length);
 for(var i:Number = 1; i < infoObject.cuePoints.length+1; i++){;
 trace("		" + i + ": " + infoObject.cuePoints[i-1].time + ", " + infoObject.cuePoints[i-1].type);
 metadataArray*=infoObject.cuePoints[i-1].time;
}
}
function drawTriangle(container:Sprite,fillColor:Number):void {
var triangle:Shape = new Shape();
triangle.graphics.beginFill(fillColor);
triangle.graphics.moveTo(0,5);
triangle.graphics.lineTo(-5,10);
triangle.graphics.lineTo(0,15);
triangle.graphics.lineTo(0,5);
triangle.x=60;
container.addChild(triangle);
}
function drawRoundedRectangle(container:Sprite, width:Number, height:Number, cornerRadius:Number, fillColor:Number) {
drawTriangle(container,fillColor);
var square:Shape = new Shape();
square.graphics.beginFill(fillColor);
square.graphics.drawRoundRect(0, 0, width, height, cornerRadius);
square.graphics.endFill();
square.x=60;
container.addChildAt(square,0);
}