Holas a todos,
Tengo un problema con un slideshow para mostrar textos html, no se xq no puedo hacer q lea las etiquetas HTML desde el XML. Ojala alguien me pueda dar una ayuda. Gracias de antemano!
Archivo slideshow.fla:
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("slideshow.xml"));
my_xml_loader.addEventListener(Event.COMPLETE,proc essXML);
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,p rocessXML);
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.htmlText=my_images[i].@TITLE;
my_label.autoSize = TextFieldAutoSize.LEFT;
my_labels_array.push(my_label);
}
my_preloader=new TextField();
my_preloader.htmlText="<b>Loading...</b>";
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,o nComplete);
}
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;
my_label.y=my_image.y+my_image.height-55;
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);
}
Archivo slideshow.xml:
<?xml version="1.0" encoding="utf-8"?>
<SLIDESHOW SPEED="3">
<IMAGE URL="images/image1.jpg" TITLE="<h1>Imagen 1</h1>" />
<IMAGE URL="images/image2.jpg" TITLE="<h1>Imagen 2</h1>" />
<IMAGE URL="images/image3.jpg" TITLE="<h1>Imagen 3</h1>" />
<IMAGE URL="images/image4.jpg" TITLE="<h1>Imagen 4</h1>" />
</SLIDESHOW>