He revisado e implementado la siguiente forma de hacer slideshow de este link
http://www.cristalab.com/tutoriales/crear-presentaciones-en-flash-con-custom-slideshows-c247l/
Aparte agregue otro archivo a manera de player que sea el que recoge la informacion del archivo.xml
el codigo que uso es el siguiente
Código :
stop(); System.security.allowDomain("localhost"); var captions=false; var transition_time=0; desc_txt._visible=false; pos_txt._visible=false; controls.pause_btn._visible=false; var is_paused=false; var audio_paused=false; var timer_interval; ErrorMessage._visible=false; error_counter=0; folder_path = _level0.slideshow+'/'; trace(_level0.slideshow); if(_level0.slideshow==undefined) folder_path=''; attachMovie("FLVPlayback", "videoPlayer", 10, {width:320, height:240, x:90, y:100}); audioPlayer = new Sound (soundLoader); function loadXML(loaded) { if (loaded) { xmlNode = this.firstChild; image = []; description = []; media_type = []; total = xmlNode.childNodes.length; if(xmlNode.attributes.captions=="on"){ _root.captions=true; desc_txt._visible=true; } if(xmlNode.attributes.numbering=="on"){ _root.numbering=true; pos_txt._visible=true; } if(xmlNode.attributes.transition_time>0){ _root.transition_time=xmlNode.attributes.transition_time; _root.soundtrack=_root.folder_path+xmlNode.attributes.mp3; if(_root.soundtrack!=undefined) audioPlayer.loadSound(_root.soundtrack, true); controls.pause_btn._visible=true; //trace(xmlNode.attributes.transition_time); clearInterval(_level0.timer_interval); _level0.timer_interval = setInterval(nextImage,(_root.transition_time*1000)); //clearInterval(myInterval); } for (i=0; i<total; i++) { image[i] = _root.folder_path+xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue; description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue; if(xmlNode.childNodes[i].attributes.mediatype=="image") media_type[i]="image"; else media_type[i]="flv"; } firstImage(); } else { content = "file not loaded!"; } } xmlData = new XML(); xmlData.ignoreWhite = true; xmlData.onLoad = loadXML; xmlData.load(folder_path+"images.xml"); ///////////////////////////////////// listen = new Object(); listen.onKeyDown = function() { if (Key.getCode() == Key.LEFT) { prevImage(); } else if (Key.getCode() == Key.RIGHT) { nextImage(); } }; Key.addListener(listen); controls.prev_btn.onRelease = function() { prevImage(); }; controls.pause_btn.onRelease = function() { onPausePlay(); }; controls.next_btn.onRelease = function() { nextImage(); }; ///////////////////////////////////// p = 0; this.onEnterFrame = function() { filesize = picture.getBytesTotal(); loaded = picture.getBytesLoaded(); if(filesize==-1) { error_counter++; if(error_counter>10){ ErrorMessage.text="Error: Media file not found. Check images.xml"; ErrorMessage._visible=true; } }else{ ErrorMessage._visible=false; error_counter=0; } preloader._visible = true; if (loaded != filesize) { preloader.preload_bar._xscale = 100*loaded/filesize; } else { preloader._visible = false; if (picture._alpha<100) { picture._alpha +=5; } } }; function nextImage() { if (p<(total-1)) { p++; switchImage(); } } function prevImage() { if (p>0) { p--; switchImage(); } } function switchImage(){ clearInterval(_level0.timer_interval); //trace("switching to image "+image[p]); if(media_type[p]=="image"){ if(audio_paused){ audioPlayer.start(pause_resume / 1000); audio_paused=false; } if(videoPlayer.state=="playing") videoPlayer.stop(); if (loaded == filesize) { picture._visible=true; videoPlayer._visible=false; //videoPlayer.stop(); picture._alpha = 0; picture.loadMovie(image[p], 1); set_caption(description[p]); picture_num(); } if((_root.transition_time>0)&& (media_type[p]=="image")){ clearInterval(_level0.timer_interval); _level0.timer_interval = setInterval(nextImage,(_root.transition_time*1000)); } }else{ clearInterval(_level0.timer_interval); _root.pause_resume = audioPlayer.position; _root.audio_paused=true; audioPlayer.stop(); picture._visible=false; videoPlayer._visible=true; var listenerObject:Object = new Object(); listenerObject.resize = function(eventObject:Object):Void { //center video in playback area newx = (Stage.width - videoPlayer.preferredWidth)/2; newy = (Stage.height - videoPlayer.preferredHeight)/2; videoPlayer._x = newx; videoPlayer._y = newy; }; videoPlayer.addEventListener("resize", listenerObject); listenerObject.ready = function(eventObject:Object):Void { videoPlayer.setSize(250, 350); }; videoPlayer.skin = "ClearExternalPlaySeekMute.swf"; videoPlayer.clear(); videoPlayer.contentPath = image[p]; videoPlayer.autoSize = true; videoPlayer.play(); var flvlistenerObject:Object = new Object(); flvlistenerObject.stopped = function(eventObject:Object):Void { nextImage(); }; videoPlayer.addEventListener("stopped", flvlistenerObject); //ns.play(image[p]); } } function firstImage() { if (loaded == filesize) { picture._alpha = 0; picture.loadMovie(image[0], 1); set_caption(description[p]); picture_num(); } } function picture_num() { current_pos = p+1; if(_root.numbering==true){ pos_txt.text = current_pos+" / "+total; } } function onPausePlay(){ if(_root.is_paused==true){ if(_root.transition_time>0){ clearInterval(_level0.timer_interval); _level0.timer_interval = setInterval(nextImage,(_root.transition_time*1000)); _root.is_paused=false; _root.pause_btn.pause_txt.text="Pause"; } }else{ clearInterval(_level0.timer_interval); pause_btn.pause_txt.text="Play"; _root.is_paused=true; } } function set_caption(caption){ if((_root.captions==true) &&(caption!=undefined)){ desc_txt.text = caption; desc_txt._visible=true; }else{ desc_txt._visible=false; } }
y me hecha a perder el tiempo de duracion de cada foto y el efecto de transicion entre cada foto.
haciendolo algunas veces mas rapido otras veces mas lenta. y en fin no se ve fluido.
alguien me podria ayudar con esto.
gracias