I have just decompiled the tour swf (featuretour_shell.swf) using SWFDecompiler. what I found was very interesting that the guy who made all this is checking totalframes property of the holder_mc which holds the loaded swf.
The developer didn’t used a tricky logic here, selected simple old way to detect movie loaded condition.
He will be experiencing no errors because he has checked it on LAN or on broadband connection. But on dialup, this logic doesn’t work. and user gets “file not found” messages for all the slides.
here’s a little chunk from the featuretour_shell.swf file:
my_bufferFactor = 0.500000;
my_fps = 21;
my_totalBytes = this.holder_mc.getBytesTotal();
my_totalFrames = this.holder_mc._totalframes;
my_currentFrame = this.holder_mc._currentframe;
my_loadedBytes = this.holder_mc.getBytesLoaded();
my_loadedFrames = this.holder_mc._framesloaded;
my_leftBytes = my_totalBytes - my_loadedBytes;
my_loadTime = getTimer() - my_startTime;
my_speed = my_loadedBytes / my_loadTime;
my_totalTime = my_totalFrames / my_fps;
my_playTime = my_loadedFrames / my_fps;
my_leftLoadTime = my_leftBytes / 1024 / my_speed;
if (my_playTime > my_leftLoadTime * my_bufferFactor && this._parent.ccReady != "wait")
{
this.status_str = "playing...";
this.holder_mc.gotoAndStop(1);
var myFrame = this.holder_mc._currentframe;
if (myFrame != 1)
{
gotoAndPlay(_currentframe - 1);
} // end if
}
else
{
this.status_str = "buffering...";
gotoAndPlay(_currentframe - 1);
} // end if
if (my_totalFrames == 0)
{
this.status_str = "";
this.loader_mc.percent_str = "file not found";
gotoAndPlay("on");
} // end if// [Action in Frame 35]
if (this.holder_mc._totalFrames == 0)
{
this._parent.fPlaylist("next");
stop ();
} // end if
Lines in red are the code to watch. I think the developer who created these tours has not tested with narrowband connections.
I have sent the feedback to MM about this, and i hope it’ll be fixed soon.
// chall3ng3r //