Slideshow skips only when online
Hi All,
I'd really appreciate some help on this.. I have a slide show that works totally fine when it's on my machine, however, once it's published to web, instead of having a smooth transition between External SWFs, it skips and shows white background with loader for a sec.. Not only when it's loading first time, but all the time.. Any help on this would be SUPER APPRECIATED. Here's the code:
Thank you very much ahead of time!!
package
{
// IMPORT FLASH
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.text.*;
import flash.geom.ColorTransform;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;
import flash.media.SoundTransform;
import flash.media.SoundMixer;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
import flash.utils.Timer;
import flash.events.TimerEvent;
import caurina.transitions.Tweener;
//----------------------------------------------------------------------------------------------------
// MAIN CLASS
//----------------------------------------------------------------------------------------------------
public class Slideshow extends MovieClip
{
//----------------------------------------------------------------- YOU CAN CUSTOMIZE THIS VAR VALUES!!
// original color for text is: 0xA28565, for bkg is: 0xECD7B2, for border is: 0xC8B18F
private var numberOfSlides:Number = 3; // number of slides there are going to be
private var spacingBtn:Number = 25; // the distance between buttons
private var bkgColorStart:uint = 0xf2d0b0; // the button bkg color when it first loads
private var borderColorStart:uint = 0xC8B18F; // the button border color when it first loads
private var txtColorStart:uint = 0xA28565; // the button text color when it first loads
private var bkgColorOver:uint = 0xffeddb; // the button bkg color on mouse over event
private var borderColorOver:uint = 0xC8B18F; // the button border color on mouse over event
private var txtColorOver:uint = 0xA28565; // the button text color on mouse over event
private var bkgColorOut:uint = 0xECD7B2; // the button bkg color on mouse out event
private var borderColorOut:uint = 0xC8B18F; // the button border color on mouse out event
private var txtColorOut:uint = 0xA28565; // the button text color on mouse out event
private var bkgColorActive:uint = 0x1fbbfc; // the button bkg color when is active
private var borderColorActive:uint = 0xffffff; // the button border color when is active
private var txtColorActive:uint = 0xffffff; // the button text color when is active
private var my_speed:Number = 8; // the speed loading to next swf
private var my_swfs:Array = new Array("swfs/one_btn.swf","swfs/two_btn.swf","swfs/three_btn.swf");
//------------------------------------------------------------------------------------- PRIVATE VAR
private var slideBtn:_SlideBtn; // make new instance
private var myBkgColorTransform = new ColorTransform();
private var myBorderColorTransform = new ColorTransform();
private var currentlyActive:*;
private var activeSet:Boolean = false;
private var slideButtons:Array;
private var urlSong:String = "ocean2.mp3";
private var urlSong2:String = "squeeak.mp3";
private var song:SoundChannel;
private var song2:SoundChannel;
private var myTransform = new SoundTransform();
private var myTransform2 = new SoundTransform();
private var my_total:Number = numberOfSlides;
private var my_preloader:TextField;
private var my_timer:Timer = new Timer(my_speed * 1000);
private var my_success_counter:Number = 0;
private var my_playback_counter:Number = 0;
private var my_loader:Loader;
//----------------------------------------------------------------------------------------------------
// MAIN
//----------------------------------------------------------------------------------------------------
public function Slideshow():void
{
init();
}
private function init():void
{
slideButtons = new Array;
for (var i:Number = 0; i < numberOfSlides; i++)
{
slideBtn = new _SlideBtn();
controlsContainer.addChild(slideBtn);
slideBtn.x = 59 + (i * spacingBtn);
slideBtn.y = 8;
slideBtn.txt.text = String(i + 1);
slideBtn.buttonMode = true;
slideBtn.mouseChildren = false;
slideBtn.useHandCursor = true;
slideBtn.addEventListener(MouseEvent.MOUSE_OVER, buttonEventsHandler);
slideBtn.addEventListener(MouseEvent.MOUSE_OUT, buttonEventsHandler);
slideBtn.addEventListener(MouseEvent.CLICK, buttonEventsHandler);
slideBtn.name = "slideBtn" + (i + 1);
myBkgColorTransform.color = bkgColorStart;
slideBtn.bkg.transform.colorTransform = myBkgColorTransform;
myBorderColorTransform.color = borderColorStart;
slideBtn.border.transform.colorTransform = myBorderColorTransform;
slideBtn.txt.textColor = txtColorStart;
slideButtons.push(slideBtn);
slideBtn.urlPath = my_swfs;
slideBtn.itsID = i;
}
setFirst();
startSound1();
startSound2();
controlsContainer.play_btn.addEventListener(MouseEvent.CLICK, playSound);
controlsContainer.stop_btn.addEventListener(MouseEvent.CLICK, stopSound);
controlsContainer.go_btn.addEventListener(MouseEvent.CLICK, playTimer);
controlsContainer.pause_btn.addEventListener(MouseEvent.CLICK, stopTimer);
controlsContainer.play_btn.visible = false;
controlsContainer.go_btn.visible = false;
}
private function changeColor(e:*, bkgColor:uint, borderColor:uint, txtColor:uint):void
{
myBkgColorTransform.color = bkgColor;
e.bkg.transform.colorTransform = myBkgColorTransform;
myBorderColorTransform.color = borderColor;
e.border.transform.colorTransform = myBorderColorTransform;
e.txt.textColor = txtColor;
}
private function setFirst():void
{
slideButtons[0].dispatchEvent(new MouseEvent(MouseEvent.CLICK));
my_timer.addEventListener(TimerEvent.TIMER, timerListener);
}
//----------------------------------------------------------------------------------------------------
// BUTTON METHODS
//----------------------------------------------------------------------------------------------------
private function buttonEventsHandler(e:MouseEvent):void
{
switch (e.type)
{
case MouseEvent.MOUSE_OVER :
changeColor(e.target, bkgColorOver, borderColorOver, txtColorOver);
break;
case MouseEvent.MOUSE_OUT :
changeColor(e.target, bkgColorOut, borderColorOut, txtColorOut);
break;
case MouseEvent.CLICK :
my_playback_counter = e.target.itsID;
loadImages(e.target.urlPath);
stayActive(e);
my_timer.reset();
my_timer.start();
break;
default :
trace("No matches found for switch (e.type)");
}
}
private function stayActive(e:MouseEvent):void
{
changeColor(e.target, bkgColorActive, borderColorActive, txtColorActive);
e.target.removeEventListener(MouseEvent.MOUSE_OVER, buttonEventsHandler);
e.target.removeEventListener(MouseEvent.MOUSE_OUT, buttonEventsHandler);
e.target.removeEventListener(MouseEvent.CLICK, buttonEventsHandler);
if (activeSet)
{
currentlyActive.target.addEventListener(MouseEvent.MOUSE_OVER, buttonEventsHandler);
currentlyActive.target.addEventListener(MouseEvent.MOUSE_OUT, buttonEventsHandler);
currentlyActive.target.addEventListener(MouseEvent.CLICK, buttonEventsHandler);
changeColor(currentlyActive.target, bkgColorOut, borderColorOut, txtColorOut);
}
currentlyActive = e;
activeSet = true;
}
//----------------------------------------------------------------------------------------------------
// SOUND METHODS
//----------------------------------------------------------------------------------------------------
public function startSound1():void
{
var request:URLRequest = new URLRequest(urlSong);
var soundFactory:Sound = new Sound();
soundFactory.load(request);
song = soundFactory.play();
song.addEventListener(Event.SOUND_COMPLETE, soundComplete);
myTransform.volume = .1;
song.soundTransform = myTransform;
}
public function startSound2():void
{
var request2:URLRequest = new URLRequest(urlSong2);
var soundFactory2:Sound = new Sound();
soundFactory2.load(request2);
song2 = soundFactory2.play();
song2.addEventListener(Event.SOUND_COMPLETE, soundComplete2);
myTransform2.volume = .7;
song2.soundTransform = myTransform2;
}
private function soundComplete(e:Event):void
{
startSound1();
}
private function soundComplete2(e:Event):void
{
startSound2();
}
function playSound(event:MouseEvent):void
{
SoundMixer.stopAll();
controlsContainer.play_btn.visible = false;
controlsContainer.stop_btn.visible = true;
startSound1();
startSound2();
}
function stopSound(event:MouseEvent):void
{
song.stop();
song2.stop();
SoundMixer.stopAll();
controlsContainer.stop_btn.visible = false;
controlsContainer.play_btn.visible = true;
}
//----------------------------------------------------------------------------------------------------
// SLIDESHOW METHODS
//----------------------------------------------------------------------------------------------------
private function loadImages(thePath:String):void
{
var my_url:String = thePath;
my_loader = new Loader();
my_loader.load(new URLRequest(my_url));
my_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
if (holder.numChildren == 0)
{
holder.addChildAt(my_loader, 0);
my_loader.alpha = 0;
Tweener.addTween(my_loader, {alpha:1, time:1, transition:"linear"});
} else if (holder.numChildren == 1)
{
holder.addChildAt(my_loader, 1);
my_loader.alpha = 0;
Tweener.addTween(my_loader, {alpha:1, time:1, transition:"linear", onComplete:done, onCompleteParams:[0]});
} else if (holder.numChildren == 2)
{
holder.addChildAt(my_loader, 0);
my_loader.alpha = 0;
Tweener.addTween(my_loader, {alpha:1, time:1, transition:"linear", onComplete:done, onCompleteParams:[1]});
}
function done(theNum:Number)
{
holder.removeChildAt(theNum);
}
my_preloader = new TextField();
my_preloader.text="Loading";
my_preloader.autoSize=TextFieldAutoSize.CENTER;
my_preloader.x = (stage.stageWidth - my_preloader.width)/2;
my_preloader.y = (stage.stageHeight - my_preloader.height)/2;
addChild(my_preloader);
}
private function onComplete(e:Event):void
{
var my_loaderInfo:LoaderInfo = LoaderInfo(e.target);
my_loaderInfo.removeEventListener(Event.COMPLETE, onComplete);
removeChild(my_preloader);
my_preloader = null;
}
private function timerListener(e:TimerEvent):void
{
my_playback_counter++;
if (my_playback_counter == my_total) {
my_playback_counter = 0;
}
slideButtons[my_playback_counter].dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
private function stopTimer(e:MouseEvent):void
{
my_timer.stop();
controlsContainer.pause_btn.visible = false;
controlsContainer.go_btn.visible = true;
}
private function playTimer(e:MouseEvent):void
{
my_timer.reset();
my_timer.start();
controlsContainer.pause_btn.visible = true;
controlsContainer.go_btn.visible = false;
}
// End of class
}
}