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
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to