Salve a tutti , sono nuovo e sto cercando di comprendere as3.
Mi serve una gallery che carichi le immagini ed il testo da un file xml, che faccio lo slide ogni tot secondi .
Ho trovato un codice in rete che fa al caso mio, ma vorrei personalizzarlo un po'.
vorrei oltre al timer due pulsanti che appaiano con il mouse sulla foto per andare avanti e indietro nello slideshow. se li metto nello stage appaiono sempre sotto alla foto, anche se su un livello superiore. Forse dovrei chiamarli da codice ma non saprei come fare e tanto meno modificare il codice per mantenere sia il timer che i pulsanti.
Non riesco a formattare con font colore dimensione il testo che carico da xml.
Anche questo testo vorrei farlo comparire solo con il mouse sopra l'immagine.
Se qualcuno riuscisse a darmi in aiuto....grazie.
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 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 my_xml_loader:URLLoader = new URLLoader();
my_xml_loader.load(new URLRequest("come/slideshow.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].@URL;
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.text=my_images[i].@TITLE;
//my_label.font="Nyala";
my_label.autoSize=TextFieldAutoSize.LEFT;
my_labels_array.push(my_label);
}
my_preloader = new TextField();
my_preloader.text="Loading";
my_preloader.autoSize=TextFieldAutoSize.CENTER;
//my_preloader.x = (my_image.y - 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);
nextImage();
my_timer=new Timer(my_speed*1000);
my_timer.addEventListener(TimerEvent.TIMER, timerListener);
my_timer.start();
}
function nextImage():void {
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[my_playback_counter]);
my_label_slides.addChild(my_label);
//my_label.x=my_image.x; non mi serve
//my_label.size=16; qui mi da sempre errore in compilazione
//my_label.font="Nyala"; qui mi da sempre errore in compilazione
my_label.y=my_image.y+my_image.height+60;
my_tweens_array[1]=new Tween(my_label,"alpha",Strong.easeOut,0,1,1,true);
}
function timerListener(e:TimerEvent):void {
hidePrev();
my_playback_counter++;
if (my_playback_counter==my_total) {
my_playback_counter=0;
}
nextImage();
}
function hidePrev():void {
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_F INISH, onFadeOut);
var my_label:TextField=TextField(my_label_slides.getCh ildAt(0));
my_tweens_array[2]=new Tween(my_label,"alpha",Strong.easeOut,1,0,1,true);
}
function onFadeOut(e:TweenEvent):void {
my_image_slides.removeChildAt(0);
my_label_slides.removeChildAt(0);
}

Rispondi quotando