Non ho nulla di preciso sottomano.
Ho scritto una classe per fare lo slideshow semplice (incrocio di assolvenza e dissolvenza), ma occorre che ti arrivino i dati in qualche modo.
Per leggere il contenuto di una cartella io utilizzerei php e poi userei la classe URLLoader per caricare i dati formattati dal php in querystring, json o xml.
Il mio slideshow accetta un array di stringhe che sono gli url da cui pescare le immagini, del tipo ["img1.jpg","img2.jpg","img3.jpg"].
Per l'animazione devi scaricare la libreria caurina e metterla nella stessa cartella del FLA.
Questa è la classe:
Codice PHP:
package org.and.controls {
import flash.display.*;
import flash.events.*;
import flash.net.URLRequest;
import flash.utils.setTimeout;
import caurina.transitions.Tweener;
import org.and.events.SlideEvent;
public class SlideShow extends Sprite {
private var A:Array;
private var D:Number;
private var C:uint;
private var W:Object;
private var T:uint;
private var U:String;
private var L1:Loader;
private var L2:Loader;
public function SlideShow (a:Array=null, d:Number=1) {
A = a;
D = d;
C = 0;
W = {};
L1 = new Loader();
L2 = new Loader();
L1.name = 'L1';
L2.name = 'L2';
L1.alpha = 0;
A != null ? init() : null;
}
private function init () {
listeners(L1);
listeners(L2);
L1.load(new URLRequest(A[C]));
U = 'L1';
addChild(L1);
addChild(L2);
}
private function listeners(t:Loader) {
t.contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, dispatcher);
t.contentLoaderInfo.addEventListener(Event.INIT, dispatcher);
t.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, dispatcher);
t.contentLoaderInfo.addEventListener(Event.OPEN, dispatcher);
t.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, dispatcher);
t.contentLoaderInfo.addEventListener(Event.UNLOAD, dispatcher);
t.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatcher);
}
private function dispatcher (e:Event) {
if (e.type == Event.COMPLETE) {
var p:Loader = e.target.loader == L1 ? L2 : L1;
var t:Loader = e.target.loader;
Tweener.addTween(p, {alpha:0, time:1, transition:"linear"})
Tweener.addTween(t, {alpha:1, time:1, transition:"linear", onComplete:finish})
if (C == A.length-1) {
dispatchEvent(new SlideEvent(SlideEvent.LAST_LOAD_COMPLETE));
}
}
dispatchEvent(e);
}
private function finish () {
dispatchEvent(new SlideEvent(SlideEvent.FADE_COMPLETE, C));
T = setTimeout(__loadOther__, D*1000);
}
private function __loadOther__ () {
C = C >= A.length-1 ? 0 : C+1;
if(U == 'L1') {
L2.load(new URLRequest(A[C]));
} else {
L1.load(new URLRequest(A[C]));
}
U = U == 'L1' ? 'L2' : 'L1';
}
public function get loader():Loader {
return getChildByName(U) as Loader;
}
}
}
PS. Fosse stato ovvio non te l'avrei chiesto.