Creo que YA me funciona. Estaba copiando el código aquí debajo y he probado
a poner el clearInterval del que me hablais los dos como primera sentencia
del slideShow. Creo que ahora todo va bien. QUÉ ALEGRÍA!!!
Os copio el código commentado:
hay muchas cosas que creo que no sirven; son ñapas que he ido metiendo en
mis múltiples intentos de arreglar esto.
var indiceXML:Number; //nodo del xml que debe leer
var delay:Number = 5000; //delay entre fotos
var delayInicial:Number = 300; // delay de la primera foto
var nFotos:Number = 0; // número de fotos a mostrar
var total:Number = 8; //número máximo de fotos en xml
var p:Number = 0; //indice de la foto actual
var inicial:Boolean ; // indica primera foto.
var visorCerrado:Boolean = true; //boolean que indica que no se debe mostrar
visor
// cuando se cierra la ventana donde está el visor se llama a esta función.
La puse con la intención de introducir el delete y parar asi el onEnterFrame
cuando acabemos de ver el detalle.
function esconderVisor(){
//delete this.onEnterFrame ; //si descomento esto. no se ven las fotos
visorCerrado = true ;
picture._visible = false ;
}
// FUNCIÓN QUE LLAMAMOS CUANDO LE DAMOS A MOSTRAR DETALLE. LA PUSE SÓLO PARA
INICIALIZAR VARIABLES
function inicializarVisor(indice:Number){
image = [] ;
imagen = [] ;
total = 8 ;
nFotos = 0 ;
p = 0 ;
inicial = true ;
indiceXML = 0 ;
preloader._visible = false ;
picture.unloadMovie() ;
picture._visible = false ;
if (indice != -1){
llamarVisor(indice)
}
}
function llamarVisor(indice:Number){
trace("loadvisor"+indice)
indiceXML = indice;
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
trace("vuelvo a cargar visor");
xmlData.load("promocionesTerminadas.xml");
}
function loadXML(loaded) {
if (loaded) {
var imagen:Array = xmlData.firstChild.childNodes;
var ruta = "fotos_promociones/";
//CARGA XML: FUNCIONA BIEN
for (var i=0; i<total; i++) {
if (imagen[indiceXML].childNodes[i+4].firstChild.nodeValue != undefined){
image[i] = ruta+imagen[indiceXML].childNodes[i+4].firstChild.nodeValue;
trace("imagen"+image[i])
}
nFotos = image.length;
}
slideshow();
} else {
content = "file not loaded!";
}
}
this.onEnterFrame = function() {
if (!visorCerrado){
filesize = picture.getBytesTotal();
loaded = picture.getBytesLoaded();
if (loaded != filesize) {
preloader.preload_bar._xscale = 100*loaded/filesize;
} else {
preloader._visible = false;
if (!inicial){
if (picture._alpha<100) {
picture._alpha += 3;
}
}
}
}
}
function nextImage() {
if (p< (nFotos-1)) {
if (loaded == filesize) {
picture._alpha = 0;
picture.loadMovie(image[p], 1);
trace("ahora p es:"+p)
p++;
visorCerrado = false;
slideshow();
}
picture._visible = true;
}
}
function slideshow() {
// ESTO ES LO QUE HE PUESTO NUEVO!!!!!!!!!
clearInterval(myInterval);
if (inicial){
myInterval = setInterval(pause_slideshow, delayInicial);
inicial = false;
}else{
myInterval = setInterval(pause_slideshow, delay);
}
function pause_slideshow() {
clearInterval(myInterval);
updateAfterEvent();
if (p == nFotos-1) {
p = 0;
}
nextImage();
}
}
Creo que ya va bien. Os lo agradezco no sabéis cuánto.
El día 17/12/07, maria garcia <[EMAIL PROTECTED]> escribió:
>
> muchas gracias.
>
> voy a intentar responder esas cuestiones que planteais y ver si puedo
> aclarar más la situación del visor. De momento, utilizo el clearInterval. El
> onEnterFrame creo que (copié el código del visor de alguna parte y lo he
> modificado poco) sirve fundamentalmente para que la foto aparezca y
> desaparezca poco a poco con un alpha.
>
> if (picture._alpha <100){
> picture._alpha +=3;
> }
>
> También probé el visor sin el onEnterFrame y los desajustes seguían
> existiendo. La carga del xml está bien hecha.
>
> Voy a intentar responder vuestras preguntas a ver si con ello me aclaro un
> poco.
>
> Muchas gracias de nuevo
>
>
> El día 17/12/07, maria garcia <[EMAIL PROTECTED]> escribió:
> >
> > Hola de nuevo,
> >
> > voy a intentar explicar el problema para ver si tenéis respuesta.
> > Gracias, Raúl, por contestar.
> >
> > El visor que me da problemas aparece en una ventana nueva cada vez que
> > le doy al detalle de una lista de promociones inmobiliarias que tengo en la
> > ventana principal. Es decir, muestro una lista de promociones y si clicas al
> > detalle se abre una nueva ventana en la que muestro por una lado información
> > de texto y por otro un visor con las imágenes asociadas a la promoción que
> > cargo desde un xml cada vez que entro.
> >
> > El funcionamiento del visor es bien sencillo: la imagen de desvanece y
> > aparece la siguiente; los tiempos los controlo con un setInterval. Hay un
> > onEnterFrame que me parece es la clave de todo el desajuste.
> >
> > La primera vez que accedo a un detalle el visor funciona correctamente.
> > El problema viene en los sucesivos accesos a detelles de otras promociones.
> > El visor entonces se desincroniza, la frecuencia de muestra se desajusta, el
> > orden de las fotos que cargo desde xml se altera, etc...Supongo que esto es
> > debido a que el onEnterFrame no se para nunca. Entonces he probado:
> >
> > - delete this.onEnterFrame una vez cierro la ventana del detalle donde
> > está el visor: con esto lo único que consigo es no ver más las imágenes. El
> > movieclip del visor está en el escenario, no lo creo con createEmpty
> > MovieClip.
> >
> > - this.onEnterFrame=null también dejo de ver las imágenes.
> >
> > - updateAfterEvent en la función donde utilizo setInterval: no consigo
> > nada. Las imágenes se ven pero no aprecio mejora alguna en cuanto a los
> > desajustes.
> >
> > Bueno, esto es todo. No sé si quedó claro.
> >
> > Muchas gracias
> >
> >
> >
> >
> > El día 17/12/07, maria garcia <[EMAIL PROTECTED] > escribió:
> > >
> > > hola gente!!!
> > >
> > > Estoy desesperada con un visor action script que no consigo
> > > sincronizar de ninguna manera. He buscado ayuda varias veces pero
> > > finalmente
> > > no funciona correctamente. La cuestión es que tengo que entregar el
> > > trabajo
> > > ya y todavia no lo tengo funcionando. Supongo que para alguien que
> > > controle
> > > de verdad el tema no será más que una chorrada. ¿Alguien acepta encargos
> > > de
> > > este tipo (remunerados económicamente)? o, ¿sabéis dónde de podría
> > > conseguir
> > > alguien que lo hiciera?
> > >
> > > Teléfono de contacto: ´651313503
> > >
> > > Mil gracias
> > >
> >
> >
>
-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
-----------------------------------------------------