diaporama simple xml/flash automatique sans navigation - Flash/ActionScript - Programmation
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 :
|
creer une image cle vide en 10 et en 120 (par exemple)
mettre ce code dans l'images cle 120:
Code :
|
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
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
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
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...
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
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 ?
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 ?
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
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);
}
};