Christopher,
Here is a suggested edit of your original code:
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
var my_speed:Number;
var my_total:Number;
var my_images:XMLList;
var rArr:Array = [];//khr
var my_loaders_array:Array = [];
var my_labels_array:Array = [];
var my_success_counter:Number = 0;
var my_playback_counter:Number = 0;
var my_slideshow:Sprite = new Sprite();
var my_image_slides:Sprite = new Sprite();
var my_label_slides:Sprite = new Sprite();
var my_preloader:TextField;
var my_timer:Timer;
var my_prev_tween:Tween;
var my_tweens_array:Array = [];
var myFont = new Font1();
myFormat.font = myFont.fontName;
myFormat.color = 0xFF0000;
myFormat.size = 16;
var my_xml_loader:URLLoader = new URLLoader();
my_xml_loader.load(new URLRequest("offices.xml"));
my_xml_loader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
var my_xml:XML = new XML(e.target.data);
my_speed = my_xml.@SPEED;
my_images = my_xml.IMAGE;
my_total = my_images.length();
loadImages();
my_xml_loader.removeEventListener(Event.COMPLETE, processXML);
my_xml_loader = null;
}
function loadImages():void {
for (var i:Number = 0; i < my_total; i++) {
var my_url:String = my_images[i].@SRC;
var my_loader:Loader = new Loader();
my_loader.load(new URLRequest(my_url));
my_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,
onComplete);
my_loaders_array.push(my_loader);
var my_label:TextField = new TextField();
my_label.defaultTextFormat = myFormat;
my_label.text = my_images[i].@DESC;
my_label.autoSize = TextFieldAutoSize.CENTER;
//my_label.textColor = 000000;
my_labels_array.push(my_label);
}
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);
}
function onComplete(e:Event):void {
my_success_counter++;
if (my_success_counter == my_total) {
startShow();
}
var my_loaderInfo:LoaderInfo = LoaderInfo(e.target);
my_loaderInfo.removeEventListener(Event.COMPLETE, onComplete);
}
function startShow():void {
removeChild(my_preloader);
my_preloader = null;
addChild(my_slideshow);
my_slideshow.addChild(my_image_slides);
my_slideshow.addChild(my_label_slides);
//khr
var len:uint = my_loaders_array.length;
for(var i:uint = 0;i < len;i++){
var my_image:Sprite = new Sprite();
my_image.visible = false;
my_image.alpha = 0;
//var bm_image:DisplayObject =
my_loaders_array[i].contentLoaderInfo.content;
my_image.addChild(my_loaders_array[i].contentLoaderInfo.content);
my_image_slides.addChild(my_image);
var my_label:TextField = TextField(my_labels_array[i]);
my_label.x = (stage.stageWidth - my_label.width)/2;
my_label.y = 155;
my_image.addChild(my_label);
rArr[i] = i;
}
trace("rArr =",rArr);
rArr = arrayShuffle(rArr);
trace("rArr =",rArr);
//
nextImage();
my_timer = new Timer(my_speed * 1000);
my_timer.addEventListener(TimerEvent.TIMER, timerListener);
my_timer.start();
}
function arrayShuffle(arr:Array):Array{
var arr2:Array = [];
while (arr.length > 0) {
arr2.push(arr.splice(Math.round(Math.random() * (arr.length - 1)),
1)[0]);
}
return arr2;
}
function nextImage():void {
//my_playback_counter = Math.floor(Math.random() *
(my_image_slides.numChildren - 1));
//trace("\nnextImage() my_playback_counter
=",my_playback_counter,rArr[my_playback_counter]);
var sprite:Sprite =
my_image_slides.getChildAt(rArr[my_playback_counter]) as Sprite;
sprite.alpha = 0;
sprite.visible = true;
my_tweens_array[0] = new
Tween(sprite,"alpha",Strong.easeOut,0,1,1,true);
/*
var my_image:Loader = Loader(my_loaders_array[my_playback_counter]);
my_image_slides.addChild(my_image);
// my_image.x = (stage.stageWidth - my_image.width)/2;
// my_image.y = (stage.stageHeight - my_image.height)/2;
my_tweens_array[0] = new
Tween(my_image,"alpha",Strong.easeOut,0,1,1,true);
var my_label:TextField =
TextField(my_labels_array[rArr[my_playback_counter]]);
my_label_slides.addChild(my_label);
my_label.x = (stage.stageWidth - my_label.width)/2;
my_label.y = 155;
my_tweens_array[1] = new
Tween(my_label,"alpha",Strong.easeOut,0,1,1,true);
*/
}
function timerListener(e:TimerEvent):void {
hidePrev();
//trace("\nmy_loaders_array.length =",my_loaders_array.length);
//my_playback_counter = Math.floor(Math.random() *
(my_loaders_array.length - 1));
//trace("\nmy_playback_counter =",my_playback_counter);
my_playback_counter++;
if (my_playback_counter == my_total) {
my_playback_counter = 0;
}
nextImage();
}
function hidePrev():void {
var mc:DisplayObject =
my_image_slides.getChildAt(rArr[my_playback_counter]);
my_prev_tween = new Tween(mc,"alpha",Strong.easeOut,1,0,1,true);
my_prev_tween.addEventListener(TweenEvent.MOTION_FINISH, onFadeOut);
/*
var my_image:Loader = Loader(my_image_slides.getChildAt(0));
my_prev_tween = new
Tween(my_image,"alpha",Strong.easeOut,1,0,1,true);
//my_prev_tween.addEventListener(TweenEvent.MOTION_FINISH,
onFadeOut);
var my_label:TextField =
TextField(my_label_slides.getChildAt(rArr[my_playback_counter]));
my_tweens_array[2] = new
Tween(my_label,"alpha",Strong.easeOut,1,0,1,true);
*/
}
function onFadeOut(e:TweenEvent):void {
trace("\nonFadeOut::",e.currentTarget.obj);
e.currentTarget.obj.visible = false;
//my_image_slides.removeChildAt(0);
//my_label_slides.removeChildAt(0);
}
Regards,
Keith Reinfeld
Home Page: http://keithreinfeld.home.comcast.net
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders