Diaporama automatique sans bouton de nav

cs_kornog Messages postés 1 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 15 janvier 2006 - 15 janv. 2006 à 14:35
cs_lette Messages postés 7 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 26 juillet 2006 - 22 juin 2006 à 11:48
bonjour,

je cherche à dev une petite anim d'image - sous flash pour éviter le javascipt - passant l'une par dessus l'autre avec des données issues d'un fichier xml
pas de prob pour le xml
mais par contre sous flash je connais pas trop et tout ce que j'ai trouvé c'est tjours avec des boutons de nav comme un vrai diaporama hors je veus pas de boutons mais un déroulement automatique de l'anim .. avec les x images dans le xml

le script cidessous marche bine mais tjours avec le sboutons que faudrait-il modifier pour qu el'anim se lance seule et tourne en boucle avec 5 ou 6 images

merci

slides_xml = new XML();
slides_xml.onLoad = startSlideShow;
slides_xml.load("slides.xml");
slides_xml.ignoreWhite = true;
//
// Show the first slide and intialize variables
function startSlideShow(success) {
if (success == true) {
rootNode = slides_xml.firstChild;
totalSlides = rootNode.childNodes.length;
firstSlideNode = rootNode.firstChild;
currentSlideNode = firstSlideNode;
currentIndex = 1;
updateSlide(firstSlideNode);

}
}
//
// Updates the current slide with new image and text
function updateSlide(newSlideNode) {
imagePath = newSlideNode.attributes.jpegURL;
slideText = newSlideNode.firstChild.nodeValue;
loadMovie(imagePath, targetClip);
}
//
// Event handler for 'Next slide' button
next_btn.onRelease = function() {
nextSlideNode = currentSlideNode.nextSibling;
if (nextSlideNode == null) {
break;
} else {
currentIndex++;
updateSlide(nextSlideNode);
currentSlideNode = nextSlideNode;
}
};
//
// Event handler for 'Previous slide' button
back_btn.onRelease = function() {
previousSlideNode = currentSlideNode.previousSibling;
if (previousSlideNode == null) {
break;
} else {
currentIndex--;
currentSlideNode = previousSlideNode;
updateSlide(previousSlideNode);
}
};

2 réponses

Cgaybeul Messages postés 105 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 11 décembre 2006
17 janv. 2006 à 00:20
d'abord il faut virer la fonctionde retour ...
Ensuite je ferai comme ça :

1 - modifier cette fonction :

function Suivante() {
nextSlideNode = currentSlideNode.nextSibling;
if (nextSlideNode == null) {
break; // ici ça doit être possible de le faire revenir au début en initialisant nextSlideNode
} else {
currentIndex++;
updateSlide(nextSlideNode);
currentSlideNode = nextSlideNode;
}
};

2 - ajouter un temporisation qui appelle cette fonction au chargement du XML :

function startSlideShow(success) {
if (success == true) {
rootNode = slides_xml.firstChild;
totalSlides = rootNode.childNodes.length;
firstSlideNode = rootNode.firstChild;
currentSlideNode = firstSlideNode;
currentIndex = 1;
updateSlide(firstSlideNode);
setInterval(Suivante, 3000); // change l'image toute les 3 secondes
}
}

ça doit marcher comme ça !
0
cs_lette Messages postés 7 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 26 juillet 2006
22 juin 2006 à 11:48
Bonjour,
j'ai testé un script pour faire un panorama automatique
qui fonctionne mais deux soucis me saoule :
1) le nombre attribue a la vitesse ne la change pas
2) mes trois dernieres images sont "abimées" 

   Voici mon code pouvez vous me dire pourquoi ?

onClipEvent (load) {
 this.direction = 1;
 this.vitesse = 2;
 this.MaxBas = this.Contenu1._width;
 this.MaxHaut = 0;
 this.Contenu1.duplicateMovieClip("Contenu2", 1);
 this.Contenu2._x = this.Contenu1._x-this.MaxBas;
}
onClipEvent (enterFrame) {
  if (this._xmouse<0) {
    this.direction = -1;
  } else {
    this.direction = 1;
  }
  if (this.direction==1) {
    if (this.Contenu1._x<=this.MaxBas) {
      this.Contenu1._x += Math.floor(this._xmouse/(this.vitesse));
    } else {
      this.Contenu1._x = this.Contenu2._x+Math.floor(this._xmouse/(this.vitesse))-this.MaxBas;
    }
    if (this.Contenu2._x<=this.MaxBas) {
      this.Contenu2._x += Math.floor(this._xmouse/(this.vitesse));
    } else {
      this.Contenu2._x = this.Contenu1._x-this.MaxBas;
    }
  } else {
    if (this.Contenu1._x>=(this.MaxHaut-this.MaxBas)) {
      this.Contenu1._x += Math.floor(this._xmouse/(this.vitesse));
    } else {
      this.Contenu1._x = (this.Contenu2._x+Math.floor(this._xmouse/(this.vitesse)))+this.MaxBas;
    }
    if (this.Contenu2._x>=(this.MaxHaut-this.MaxBas)) {
      this.Contenu2._x += Math.floor(this._xmouse/(this.vitesse));
    } else {
      this.Contenu2._x = this.Contenu1._x+this.MaxBas;
    }
  }
}

merci baucoup d'avance
0
Rejoignez-nous