Cacher un clip

Résolu
ziseb
Messages postés
15
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 juillet 2011
- 27 juin 2011 à 11:05
ziseb
Messages postés
15
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 juillet 2011
- 13 juil. 2011 à 14:20
Bonjour,

J'ai créé un diaporama qui est alimenté par un fichier XML.
Je souhaite lors du traitement des images, que le bouton suivant disparaisse quand on arrive à la dernière image et que le bouton précédent disparaisse lorsque l'on est à la première image.
Voici le code de traitement des images depuis le fichier XML :
function traitementde(ok) {
if (ok) {
voirphoto() ;
}
else {
trace("Erreur au chargement du fichier");
}
}
function voirphoto() {
travail = decoenfants.firstChild ;
visionner(travail) ;
}
function visionner(travail) {

lestravaux =travail.childNodes;
    visionneusede_mc.nMax = lestravaux.length-1 ;
    visionneusede_mc.courant = 0 ;
affiche(lestravaux[0]) ;
visionneusede_mc.precedent_mc.onPress = precedent ; 
visionneusede_mc.suivant_mc.onPress = suivant ;
}

function affiche(untravail) {
image = untravail.attributes.photo;
    commentaires = untravail.childNodes[3].firstChild ;
titre = untravail.childNodes[4].firstChild ;
visionneusede_mc.porteImage_mc.loadMovie("images/decoenfants/"+ image) ;

if (!untravail.childNodes[3].firstChild.nodeValue) {
visionneusede_mc.commentaires_txt.htmlText = "";
} else {
visionneusede_mc.commentaires_txt.html=true;
visionneusede_mc.commentaires_txt.htmlText = commentaires ;
} 
    if (!untravail.childNodes[4].firstChild.nodeValue) {
visionneusede_mc.titre_txt.htmlText = "";
} else {
visionneusede_mc.titre_txt.html = true ;
visionneusede_mc.titre_txt.htmlText = titre ;
}
}


function precedent() {
if (this._parent.courant > 0) {
this._parent.courant-- ; 
affiche(lestravaux[this._parent.courant]) ;
}
}


function suivant() {
if (this._parent.courant < this._parent.nMax) {
affiche(lestravaux[this._parent.courant]) ;
}

}

Les boutons précédent et suivant sont des movieclips (precedent_mc et suivant_mc).
Si quelqu'un a une idée pour faire disparaitre ces movieclips, je suis preneur.

11 réponses

aerolyte
Messages postés
465
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
4 mai 2013
1
30 juin 2011 à 19:50
Bonjour,
Tout d'abord, je n'ai fait que répondre a ta question, sans regarder le reste du code qui me semble faux.

Le type Number represente un nombre alors que int represente un entier

par ex:
var Nombre:Number=523.1555;
var Entier:int=Nombre;
trace(Entier);//tu obtient 523

donc quand on travail sur des entier il est préférable d'utiliser le type int qui est plus rapide a calculer.

Pour le message d'erreur cela fait bien longemps que j'ai pas fait d'as2, le code marche pourtant bien en as3

cordialement
3
ziseb
Messages postés
15
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 juillet 2011

13 juil. 2011 à 14:20
Bon, je suis passé par une autre méthode qui porte ses fruits :
function traitementde(ok) {
if (ok) {
voirphoto() ;
}
else {
trace("Erreur au chargement du fichier");
}
}


function voirphoto() {

travail = decoenfants.firstChild ;
visionneusede_mc.precedent_mc._visible = false;
visionner(travail) ;

}
function visionner(travail) {

lestravaux =travail.childNodes;	
    visionneusede_mc.nMax = lestravaux.length-1 ;
    visionneusede_mc.courant = 0 ;
affiche(lestravaux[0]) ;
visionneusede_mc.precedent_mc.onPress = precedent ; 
visionneusede_mc.suivant_mc.onPress = suivant ;
}


function affiche(untravail) {
image = untravail.attributes.photo;
    commentaires = untravail.childNodes[3].firstChild ;
titre = untravail.childNodes[4].firstChild ;
visionneusede_mc.porteImage_mc.loadMovie("images/decoenfants/"+ image) ;

if (!untravail.childNodes[3].firstChild.nodeValue) {
visionneusede_mc.commentaires_txt.htmlText = "";
} else {
visionneusede_mc.commentaires_txt.html=true;
visionneusede_mc.commentaires_txt.htmlText = commentaires ;
} 
    if (!untravail.childNodes[4].firstChild.nodeValue) {
visionneusede_mc.titre_txt.htmlText = "";
} else {
visionneusede_mc.titre_txt.html = true ;
visionneusede_mc.titre_txt.htmlText = titre ;
}
}


function precedent() {
if (this._parent.courant > 0) {
visionneusede_mc.suivant_mc._visible = true;
this._parent.courant-- ; 
coura = this._parent.courant;
affiche(lestravaux[this._parent.courant]) ;
if (coura == 0){
visionneusede_mc.precedent_mc._visible = false;
}
}		
}


function suivant() {
if (this._parent.courant < this._parent.nMax) {
visionneusede_mc.precedent_mc._visible = true;
this._parent.courant++;
cour = this._parent.courant;
affiche(lestravaux[this._parent.courant]) ;
sval = this._parent.nMax;
if (cour == sval){
visionneusede_mc.suivant_mc._visible = false;
}
}
}


Merci, car tu m'as aidé sur certains points du code.

Seb
3
ziseb
Messages postés
15
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 juillet 2011

27 juin 2011 à 11:07
Oups! j'ai été un peu rapide pour valider le post.

Merci par avance, bien entendu.

Seb
0
aerolyte
Messages postés
465
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
4 mai 2013
1
27 juin 2011 à 11:55
Bonjour,
il suffit de crer une fonction
gestionnav(pva:int)

que tu appeleras:
1> lors de la création de ton diaporama en affectant une valeur de départ à this.parent.courant
2> a chaque clic valide sur les boutons

var val:int;

fonction gestionnav(pval:int=-1):void{
//si l'image actuelle est la première ou la dernière
switch (this.parent.courant){
case 0:precedent_mc.visible=false;break;
case visionneusede_mc.nMax:suivantt_mc.visible=false;break;
}
//si l'image précedente était la première ou la dernière
if(pval==0){precedent_mc.visible=true;
}else{
if(pval==visionneusede_mc.nMax){suivant_mc.visible=true;
}
}
}

function precedent():void{
if(this._parent.courant>0){
val=this._parent.courant;
this._parent.courant--; 
affiche(lestravaux[this._parent.courant]);
gestionnav(val);
}
}

function suivant():void{
if(this._parent.courant<this._parent.nMax){
val=this._parent.courant;
this._parent.courant++; 
affiche(lestravaux[this._parent.courant]);
gestionnav(val);
}
}


Cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ziseb
Messages postés
15
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 juillet 2011

27 juin 2011 à 14:55
Merci beaucoup... Je suis en train de tester ça, mais vu que je suis en AS2.0, ça bug à fond...
Je bloque sur la fonction :
fonction gestionnav(pval:int=-1):void{

J'ai bien renmplacé le int par Number, mais dès que je lui colle = -1 le debugger me dis qu'il manque un ')' ou ','.

Je n'arrive pas à comprendre pourquoi...

Je vais continuer à chercher...

Seb
0
aerolyte
Messages postés
465
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
4 mai 2013
1
27 juin 2011 à 15:22
sinon met "1" tout simplement, c'est juste pour indiquer une valeur par défaut si pval, n'est pas précisé
0
ziseb
Messages postés
15
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 juillet 2011

30 juin 2011 à 14:53
Bonjour,

Ca ne fonctionne pas. Peut-être est-ce l'intégralité de mon code qui est en cause? Je ne sais pas... Snif!



Seb
0
ziseb
Messages postés
15
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 juillet 2011

30 juin 2011 à 16:00
Voilà ce que j'ai :
Un identifiant de type est attendu après ':'. function gestionnav(pval:Number):void{

Seb
0
aerolyte
Messages postés
465
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
4 mai 2013
1
30 juin 2011 à 16:11
Pourquoi tu as remplacer le int par Number?

je vois pas pourquoi ceci ne marcherais pas?

fonction gestionnav(pval:int=1):void{
0
ziseb
Messages postés
15
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 juillet 2011

30 juin 2011 à 16:26
Voilà ce qu'il me retourne :
Impossible de charger la classe ou l'interface 'int'. function gestionnav(pval:int=1):void{
et ensuite :
'}' inattendu

Pour le }, c'est uniquement lorsque je lui colle le =1 ou -1, peu importe.
Visiblement en AS2.0, Number est l'équivalent de int. Mais c'est possible que je me trompe...


Seb
0
ziseb
Messages postés
15
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 juillet 2011

30 juin 2011 à 16:28
Autre indice, j'ai fait un trace de visionneuse_mc.nMax. Il me retourne un undefined. En fait j'ai l'impression qu'il est incapable de calculer le nombre de photos que j'ai renseignées dans le fichier XML...

Seb
0