Image lien vers une page web a partir d'un diaporama automatique [Résolu]

Signaler
Messages postés
6
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
12 décembre 2007
-
Messages postés
6
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
12 décembre 2007
-
Donc mon probleme que dans mon diaporama, lors du defilement d'image,
j'aimerais cliquer sur celle-ci afin de faire apparaitre une page web.

pouvez vous m'aider :D



voici mon code sur un calque:



//traitement de fichier XML

FichierXML = new XML();//création de l'objet XML

FichierXML.ignoreWhite = true;//ignorer les sauts de ligne

//pour recuperer le XML a distance, Objet LoadVars vide

monLoadVars = new LoadVars();

//On charge le fichier XML avec l'instruction sendAndLoad du LoadVars

//mettre l'url de serveur ou est le fichier

monLoadVars.sendAndLoad("LesProduits.xml", FichierXML);

//monLoadVars.sendAndLoad("http:// LesProduits.xml", FichierXML);



//FichierXML.load("LesProduits.xml");//charge le document

_root.stop();

//creation du diaporama

this.createEmptyMovieClip("diaporama", 0);

//position du clip

diaporama._y = 10;

diaporama._x = 10;

FichierXML.onLoad = function(sucess) {

if (sucess) {

imageIndex = -1;//image en cour

maxImages = this.firstChild.childNodes.length;//le nombre d'images dans le répertoire



for (var i = 0; i<maxImages; i++) {

//recupére le nom et le lien du fichier

var nom = this.firstChild.childNodes[i].attributes.laUrl;

var lien = this.firstChild.childNodes[i].attributes.link;

// Création d'un clip vide:

diaporama.createEmptyMovieClip("image"+i, 10 + i);

diaporama["image"+i].loadMovie(nom);//charge le jpeg

diaporama["image"+i]._alpha = 0;//cache le clip

//clic image

diaporama["image"+i].onRelease = function() {

getURL(lien, "_blank");

trace("onRelease => " + lien);

}

}

trace("total Image = " + maxImages)

imageNext();//initialisation

_root.play();

delete FichierXML;

}else{

trace("Fichier non chargé");

}

};

//image suivante

function imageNext(){

if(imageIndex == -1){

maxImages--;//a cause du decalage des images numerotées de 0 a n

}

//index de l'image suivante

imageIndex++;

//si l'index est sup au nb d'image, on reprend a 0

if(imageIndex > maxImages){

imageIndex = 0;

}

trace("Image courrante = " + imageIndex);

//charge le jpeg et crée le fondu

refInt = setInterval(FadeIn, 100);

}

//fondu du fond vers l'image

function FadeIn(){

diaporama["image"+imageIndex]._alpha += 4;

if(diaporama["image"+imageIndex]._alpha >= 100){

diaporama["image"+imageIndex]._alpha = 100;

//suppression de variables internes

clearInterval(refInt);

refOut = setInterval(FadeOut, 100);

}

}

//fondu de l'image vers le fond

function FadeOut(){

diaporama["image"+imageIndex]._alpha -= 4;

if(diaporama["image"+imageIndex]._alpha <= 0){

diaporama["image"+imageIndex]._alpha = 0;

clearInterval(refOut);

imageNext()

}

}



je charge des images sur le net a partir d'un fichier XML de la forme:



<?xml version="1.0"?>















laUrl = l'url de l'image

link = le lien vers lequel mon image lien portera



voila, merci :D



j'ai mis en rouge l'endroit ou ça ne passe pas :s(bien que l'application ne plante pas)



sivous voyez des manieres afin d'ameliorer mon code je suis ouvert a vos propostions



OminiuS

4 réponses

Messages postés
6
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
12 décembre 2007

je n'ai pas trop commpris ta solution, mais j'en ai trouvée une :D



FichierXML.onLoad = function(sucess) {

if (sucess) {

imageIndex = -1;//image en cour

maxImages = this.firstChild.childNodes.length;//le nombre d'images dans le répertoire



for (var i = 0; i<maxImages; i++) {

//recupére le nom et le lien du fichier

var image = this.firstChild.childNodes[i].attributes.laUrl;

nom[i] = this.firstChild.childNodes[i].attributes.nom;//on crée un tableau ou on stocke tous les liens

if(this.firstChild.childNodes[i].attributes.link){


lien[i] =
this.firstChild.childNodes[i].attributes.link;

}



// on lance le protype

//diaporama.charge_image(image);//-_-' marche pô

// Création d'un clip vide:

diaporama.createEmptyMovieClip("image"+i, 10 + i);

diaporama["image"+i].loadMovie(image);//charge le jpeg

diaporama["image"+i]._alpha = 0;//cache le clip

//centrer l'image

diaporama.onEnterFrame = function(){


diaporama._x = (Stage.width -
diaporama["image"+imageIndex]._width)/2;


diaporama._y = (Stage.height -
diaporama["image"+imageIndex]._height)/2;

}

}

trace("total Image = " + maxImages)

imageNext();//initialisation

_root.play();

delete FichierXML;

}else{

trace("Fichier non chargé");

}

};

//image suivante

var refOut;

var refInt;

function imageNext(){

if(imageIndex == -1){

maxImages--;//a cause du decalage des images numerotées de 0 a n

}

//index de l'image suivante

imageIndex++;

//si l'index est sup au nb d'image, on reprend a 0

if(imageIndex > maxImages){

imageIndex = 0;

}

trace("Image courrante = " + imageIndex);

//charge le jpeg et crée le fondu

getNomImage(imageIndex);

//10 pour ne pas voir completement le fond du diapo

diaporama["image"+imageIndex]._alpha = 1;

//quand on appuie, rediriger vers un lien

diaporama.onRelease = function() {//diaporama est mon conteneur d'images

if(lien[imageIndex]){//si le lien existe ou peu cliquer


getURL(lien[imageIndex], "_blank");//getUrl avec le lien stocké
prealablement dans le tableau

trace("onRelease => " + lien[imageIndex]);

}

}

//appel du fondu

refInt = setInterval(FadeIn, 50);

}
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

ca marchera mieux si tu définie la variable lien dans le clip :

for (var i = 0; i<maxImages; i++) {
//recupére le nom et le lien du fichier
var nom = this.firstChild.childNodes[i].attributes.laUrl;
var lien = this.firstChild.childNodes[i].attributes.link;
// Création d'un clip vide:
diaporama.createEmptyMovieClip("image"+i, 10 + i);
diaporama["image"+i].loadMovie(nom);//charge le jpeg
diaporama["image"+i]._alpha = 0;//cache le clip
diaporama["image"+i].lien = lien;
//clic image
diaporama["image"+i].onRelease = function() {
getURL(lien, "_blank");
trace("onRelease => " + lien);
}
}

Et là ca va roulé tt seul ;)
++

Flash sans Limites
_Benjy chez kOlapsis

Composants Flash8 : http://composants.kolapsis.net
- kSql pour se connecter à mysql et executer des requètes depuis Flash
- kImage : gestionnaire d'image avec diaporama, redimentionnement automatique des image et zoom
- kTextInput : champ TextInput évolué avec de multiples controles de saisie intégrés
- kColorPicker : un simple petit selecteur de couleur

merci de penser a accepter les réponse qui vous aident...
Messages postés
6
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
12 décembre 2007

merci quand meme [auteurdetail.aspx?ID=266021 _benjy] ;)
Messages postés
6
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
12 décembre 2007

j'ai un autre probleme :o



je sais que le preaload est cencé etre bateau, mais la je gallere...



j'aimerais savoir comment je peux gérer le preload avec mon systeme de movieclip conteneur diaporama

qui contient des movieclips de type diaporama["image"+i]

et ou je devrais inserer la solution :D



merci