diaporama simple xml/flash automatique sans navigation

diaporama simple xml/flash automatique sans navigation - Flash/ActionScript - Programmation

Marsh Posté le 15-01-2006 à 14:46:17    

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 veux pas de boutons mais un déroulement automatique de l'anim .. avec les x images dans le xml
 
le script cidessous marche bien mais tjours avec les boutons que faudrait-il modifier pour que l'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);
    }
};

Reply

Marsh Posté le 15-01-2006 à 14:46:17   

Reply

Marsh Posté le 15-01-2006 à 15:22:18    

deux calques: un qui dure tous le timeline sans interruption avec target clip, et un autre pour les actonscript:
mettre ce code dans la premiere images cle:

Code :
  1. _rrot.stop();
  2. slides_xml = new XML();
  3. slides_xml.onLoad = startSlideShow;
  4. slides_xml.load("slides.xml" );
  5. slides_xml.ignoreWhite = true;
  6. //
  7. // Show the first slide and intialize variables
  8. function startSlideShow(success) {
  9.    if (success == true) {
  10.            rootNode = slides_xml.firstChild;
  11.            totalSlides = rootNode.childNodes.length;
  12.            firstSlideNode = rootNode.firstChild;
  13.            currentSlideNode = firstSlideNode;
  14.            currentIndex = 1;
  15.            updateSlide(firstSlideNode);
  16.            _root.gotoAndPlay(10);
  17.     }
  18. }
  19. //
  20. // Updates the current slide with new image and text
  21. function updateSlide(newSlideNode) {
  22.    imagePath = newSlideNode.attributes.jpegURL;
  23.    slideText = newSlideNode.firstChild.nodeValue;
  24.    loadMovie(imagePath, targetClip);
  25. }


creer une image cle vide en 10 et en 120 (par exemple)
mettre ce code dans l'images cle 120:

Code :
  1. nextSlideNode = currentSlideNode.nextSibling;
  2. if (nextSlideNode == null) {
  3.     break;
  4. } else {
  5.     currentIndex++;
  6.     updateSlide(nextSlideNode);
  7.     currentSlideNode = nextSlideNode;
  8. }
  9. _root.gotoAndPlay(10);


---------------
D3
Reply

Marsh Posté le 15-01-2006 à 15:48:37    

merci..
la première image s'affiche çà bouge pas ensuite..
normal car je sais pas comment mettre le target sur le calque qui dure la timeline  
tu peux me le préciser stp

Reply

Marsh Posté le 15-01-2006 à 18:35:32    

targetClip c'est une variable contenant le nom d'un clip ou c'est le nom du clip ?
si c'est le nom du clip, depalce le sur un calque qui fait toutes la duree du timeline...


---------------
D3
Reply

Marsh Posté le 15-01-2006 à 19:13:56    

excuse .. mais en fait c'est dans ta première réponse que tu me dis :"
deux calques: un qui dure tous le timeline sans interruption avec target clip,, et un autre pour les actonscript: "
 
j'ai donc crée deux calques  
1. anim : qui a une timeline de 120 avec une image clé vide à la 10 et une autre à 120 avec ce code :  
 
      nextSlideNode = currentSlideNode.nextSibling;
 
      if (nextSlideNode == null) {
 
          break;
 
      } else {
 
          currentIndex++;
 
          updateSlide(nextSlideNode);
 
          currentSlideNode = nextSlideNode;
 
      }
 
      _root.gotoAndPlay(10);  
 
et un second calque avec juste une image dans laquelle j'aimis le code :  
      _rrot.stop(); // j'ai corrigé avec _root.stop(); je pense que c'est une erreur de frappe non ?
 
      slides_xml = new XML();
 
      slides_xml.onLoad = startSlideShow;
 
      slides_xml.load("slides.xml" );
 
      slides_xml.ignoreWhite = true;
   
 
      function startSlideShow(success) {
 
         if (success == true) {
 
                 rootNode = slides_xml.firstChild;
 
                 totalSlides = rootNode.childNodes.length;
 
                 firstSlideNode = rootNode.firstChild;
 
                 currentSlideNode = firstSlideNode;
          currentIndex = 1;
           updateSlide(firstSlideNode);
 
                 _root.gotoAndPlay(10);
 
          }
 
      }
 
 
   
 
      function updateSlide(newSlideNode) {
 
         imagePath = newSlideNode.attributes.jpegURL;
 
         slideText = newSlideNode.firstChild.nodeValue;
 
         loadMovie(imagePath, targetClip);
 
      }  
 
 
 
mais je ne vois donc pas où ni comment mettre le target : j'ai regardé dans la doc de flash MX .; mais pas trouvé  
 
excuse mais je comprends pas tout !
bref j'ai bien la première image ..  
mon xml ressemble à çà  
 <?xml version='1.0' encoding='UTF-8' ?>
<Slides>
  <slideNode jpegURL="img_upload/01.jpg">River Avon</slideNode>  
  <slideNode jpegURL="img_upload/02.jpg">Mud and Water</slideNode>  
 
  </Slides>
?>
 
merci de m'aider je voudrais tellement ne pas avoir passer ce dimanche devan tla bécane pour rien

Reply

Marsh Posté le 15-01-2006 à 20:37:46    

targetclip c'est le nom du clip qui set a charger les images ( cf. loadMovie(imagePath, targetClip); ), il doit donc etre present tout le long du timeline...
ton anim ne charge qu'une seul image car elle fait un tour complet et quand elle revient sur l'image 10 elle lit 2 actionscript ce que tu as mis dans l'image 10  du calque (pas teros mais pas tres grave non plus) et le _root.stop() et ca c'est pas bon ;)
sinon la correction de _rrot en _root c'est bien vu  :whistle:  
 
donc fait en sorte d'avoir un calque (appellé actions par ex) avec que du code (des cercles blanc signifiant des images clés vides):
->image 1 ce que j'est deja dit
->image 10 rien
->image 120 ce que j'ai deja dit
et un autre calque avec ton movieclip vide
 
j'espere mettre mieux fait comprendre...


---------------
D3
Reply

Marsh Posté le 15-01-2006 à 21:10:03    

on va y arriver ... j'en suis sur  
mia spour l'instant çà marche pas encore  
je résume ce que je viens de faire d'aprsè ce que j'ai compris :
 
j'ai crée un calque "actions' et sur celui-ci
une première image clé avec :  
 
 
 _root.stop();
      slides_xml = new XML();
 
      slides_xml.onLoad = startSlideShow;
 
      slides_xml.load("slides.xml" );
 
      slides_xml.ignoreWhite = true;
 
 
      function startSlideShow(success) {
 
         if (success == true) {
   
                 rootNode = slides_xml.firstChild;
 
                 totalSlides = rootNode.childNodes.length;
 
                 firstSlideNode = rootNode.firstChild;
 
                 currentSlideNode = firstSlideNode;
 
                 currentIndex = 1;
 
                 updateSlide(firstSlideNode);
 
                 _root.gotoAndPlay(10);
 
          }
 
      }
 
 
      function updateSlide(newSlideNode) {
 
         imagePath = newSlideNode.attributes.jpegURL;
 
         slideText = newSlideNode.firstChild.nodeValue;
 
         loadMovie(imagePath,targetClip);
 
      }    
 
une image clé vide à la 10  
et une image clé à 120 avec :
 
nextSlideNode = currentSlideNode.nextSibling;
 
      if (nextSlideNode == null) {
 
          break;
 
      } else {
 
          currentIndex++;
 
          updateSlide(nextSlideNode);
 
          currentSlideNode = nextSlideNode;
 
 
au dessus j'ai crée un calque .. insérer un symbole "clip" vide ... à la première image et fais insérer image à la 120
 
j'ai tjours la première image qui s'affiche mais çà démarre pas ..
 
 
je comprends pas dans t aréponse faut-il supprimer _root.stop() ? au début ?
 
merci

Reply

Marsh Posté le 15-01-2006 à 22:25:28    

non, il est necessaire (des que le xml est chargé, _root.gotoAndplay(10); de toute facon)
par contre as tu pensé a mettre _root.gotoAndPlay(10); a la fin du code de l'image 120 ?


Message édité par mechkurt le 15-01-2006 à 22:26:05
Reply

Marsh Posté le 15-01-2006 à 22:47:49    

non non ... tout est comme tu le dis .. mais çà veut pas !
tu veux pas voir le fla ?

Reply

Marsh Posté le 16-01-2006 à 08:59:46    

;) ben ouais mp moi l'adresse ou je peux le telecharger, ou sinon mon email est dans mon CV sur mon site...
 
EDIT: apres contacts en MP il se trouve que le fla était en player 6 actionscript 1 au lieu de player 7 ou + actionscript 2
 :hello:


Message édité par mechkurt le 16-01-2006 à 12:33:28

---------------
D3
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed