Pb de code AS2

Signaler
Messages postés
9
Date d'inscription
mardi 12 mai 2009
Statut
Membre
Dernière intervention
16 novembre 2009
-
Messages postés
401
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
31 janvier 2010
-
Besoin d'aide!!!! URGENT!!!

Je suis entrain de faire un site entièrement en flash. Cette galerie doit s'afficher à un endroit bien précis de la page et lorsqu'on click sur un de boutons du menu.

J'ai crée une galerie d'images (un fichier XML et en AS2) dont voici le code:

var myGalleryXML = new XML();
myGalleryXML.ignoreWhite = true;
myGalleryXML.load("gallery.xml");


myGalleryXML.onLoad = function() {

_root.gallery_x = myGalleryXML.firstChild.attributes.gallery_x;
_root.gallery_y = myGalleryXML.firstChild.attributes.gallery_y;
_root.gallery_width = myGalleryXML.firstChild.attributes.gallery_width;
_root.gallery_height = myGalleryXML.firstChild.attributes.gallery_height;

_root.myImages = myGalleryXML.firstChild.childNodes;
_root.myImagesTotal = myImages.length;

_root.thumb_height = myGalleryXML.firstChild.attributes.thumb_height;
_root.thumb_width = myGalleryXML.firstChild.attributes.thumb_width;

_root.full_x = myGalleryXML.firstChild.attributes.full_x;
_root.full_y = myGalleryXML.firstChild.attributes.full_y;

callThumbs();
createMask();
scrolling();
}

function callThumbs(){
_root.createEmptyMovieClip("container_mc",_root.getNextHighestDepth());
container_mc._x = _root.gallery_x;
container_mc._y = _root.gallery_y;

var clipLoader = new MovieClipLoader();
var preloader = new Object();
clipLoader.addListener(preloader);

for (i=0; i<_root.myImagesTotal; i++) {
thumbURL = myImages[i].attributes.thumb_url;


myThumb_mc = container_mc.createEmptyMovieClip(i, container_mc.getNextHighestDepth() );
myThumb_mc._y = _root.thumb_height*i;
clipLoader.loadClip("thumbs/"+thumbURL,myThumb_mc);

preloader.onLoadComplete=function(target){
target.onRelease=function(){
callFullImage(this._name);
}
target.onRollOver=function(){
callRollImage(this._name);
this._alpha=50;
}
target.onRollOut=function(){
callBlackImage(this._name);
this._alpha=100;
}
}
}
}

function callFullImage(myNumber) {

myURL = myImages[myNumber].attributes.full_url;

_root.createEmptyMovieClip("fullImage_mc",_root.getNextHighestDepth());
fullImage_mc._x = _root.full_x;
fullImage_mc._y = _root.full_y;

var fullClipLoader = new MovieClipLoader();
fullClipLoader.loadClip("full_images/"+myURL,fullImage_mc);
}

function callRollImage(myNumber) {
myURL = myImages[myNumber].attributes.roll_url;

_root.createEmptyMovieClip("fullImage_mc",_root.getNextHighestDepth());
fullImage_mc._x = _root.full_x;
fullImage_mc._y = _root.full_y;

var fullClipLoader = new MovieClipLoader();
fullClipLoader.loadClip("roll_images/"+myURL,fullImage_mc);
}

function callBlackImage(myNumber) {
myURL = myImages[myNumber].attributes.black_url;

_root.createEmptyMovieClip("fullImage_mc",_root.getNextHighestDepth());
fullImage_mc._x = _root.full_x;
fullImage_mc._y = _root.full_y;

var fullClipLoader = new MovieClipLoader();
fullClipLoader.loadClip("black_images/"+myURL,fullImage_mc);
}

function createMask() {

_root.createEmptyMovieClip("mask_mc",_root.getNextHighestDepth());

mask_mc._x = _root.gallery_x;
mask_mc._y = _root.gallery_y;

mask_mc.beginFill(0x000000,100);
mask_mc.lineTo(_root.gallery_width,0);
mask_mc.lineTo(_root.gallery_width,_root.gallery_height);
mask_mc.lineTo(0,_root.gallery_height);
mask_mc.lineTo(0,0);

container_mc.setMask(mask_mc);

}

function scrolling() {
_root.onEnterFrame = function() {

container_mc._y += Math.cos(((mask_mc._ymouse)/mask_mc._height)*Math.PI)*7;

if (container_mc._y>mask_mc._y) {
container_mc._y = mask_mc._y;
}

if (container_mc._y<(mask_mc._y-(container_mc._height-mask_mc._height))) {
container_mc._y = mask_mc._y-(container_mc._height-mask_mc._height);
}

}
}

et le code XML
<gallery thumb_width="129" thumb_height="90" gallery_width="129" gallery_height="375" gallery_x="35" gallery_y="160" full_x="240" full_y="160">









</gallery>

Cela marche très bien!!!

Mon soucis c'est que je veux ceci (cet galerie) s'affiche que lorsque on click sur le bouton du menu qui doit la faire afficher à un endroit bien particulier de mon site, pendant quelques images et pas tout au long de mon site...

Qu'est ce qu'il faut ajouter à mon code pour que cela fonctionne? (j'ai essayé de mettre la galerie dans un clip vide mais ça ne marche pas!!!)
Aussi essayé de charger le swf de cet galerie à l'endroit précis dans ma page , mais je ne sais pas comment faire ou quel code mettre...
Je regarder plusieurs tutoriels mais je ne trouve rien!!!

Alors si quelqu'un pourrait m'aider car je ne suis pas très forte pour coder... Cela fait plusieurs jours que je suis plongé dedans et je ne m'en sorts pas!!!

Merci indéfiniment!!!

A + 

10 réponses

Messages postés
401
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
31 janvier 2010

salut

je n'ai pas eu le courage de lire ton code non indenté.

tu as essayé tout bêtement de rendre _visible à true/false suivant tes besoins ?
Messages postés
9
Date d'inscription
mardi 12 mai 2009
Statut
Membre
Dernière intervention
16 novembre 2009

Salut,

J'ai essayé mais je ne sais pas comment le coder

Il faudrait que ce script soit visible quand on click sur le bouton et que cela va à une image X sur la timeline
En dehors qu'il ne soit plus visible

Je ne sait pas comment coder cela ni où le coder
Est ce sur le bouton ou à la suite de ce code?

Donc si quelqu'un a une âme charitable et veut bien m'aider ....

Thank you!!!

A + 
Messages postés
401
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
31 janvier 2010

effectivement tu dois coder chaque bouton, soit à la main, soit dynamiquement par code, pour qu'ils pointent sur l'image X de ta timeline et/ou qu'il rendre _visible à true/false.
Messages postés
9
Date d'inscription
mardi 12 mai 2009
Statut
Membre
Dernière intervention
16 novembre 2009

Salut...

Je n'arrive à rien!!!

J'ai essayé les méthodes que tu m'as donné mais rien ça ne marche pas !!!
et toujours le même PB ....

Si quelqu'un a une idée, je prends....

Comme je suis débutante en programmation svp envoyez moi le code même s'il faut que je le modifie un peu pour que ça colle à mon projet!!!

Il me manque que résoudre ce pb et je pourrais mettre en ligne le site en question.... et pouvoir en finir avec !!!!

Merci d'avance !!!


A + 
Messages postés
401
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
31 janvier 2010

quel bout de code te chagrine exactement ?
Messages postés
401
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
31 janvier 2010

Freelance c'est un vrai boulo ^_^
Messages postés
9
Date d'inscription
mardi 12 mai 2009
Statut
Membre
Dernière intervention
16 novembre 2009

il n'y aucune partie de ce code qui me chagrine....

la seule chose c'est que je voudrais que le fichier s'affiche que quand in click sur le bouton qui va sur cette page et non tout le long du site

c'est tout !!!

A + 
Messages postés
401
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
31 janvier 2010

Je n'ai absolument rien compris. Peux-tu reformuler ton problème ? car un click sur un bouton, qui affiche un fichier, qui va sur cette page et non tout le long du site, je suis incapable de comprendre ^^ (attention c'est peut-être moi qui ai du mal, mais bon...).
Messages postés
9
Date d'inscription
mardi 12 mai 2009
Statut
Membre
Dernière intervention
16 novembre 2009

Salut,

Bon je vais essayer de t'expliquer.....

J'ai crée un site entièrement en Flash AS2
Comme tout site il y a un menu et dans le quel on click on va a une page et puis à une autre etc....(Normal!!!)
Lorsqu'on click sur un des liens du menu, cela va vers une page où il y une galerie d'images dynamiques avec un fichier XML et l'AS2...dont le code est ci-dessus.Tout marche bien en tant que fichier entérieur, ou quand j'intègre le code au site, mais cela donne 2 pb...

1) lorsque j'intègre le swf de la galerie dynamique dans l'endroit où il devrait être chargé dans mon site, j'ai un pb de fond. En effet le site y a un fond particulier, et le chargement du fichier efface le fond du site...Le fond du fichier appelé n'est pas transparent... Donc pas possible de faire comme cela...(en tout cas je ne sais comment le faire!!!)
De plus je ne sait pas comment dire au bouton: va à tel image et charge le fichier un tel lorsque on click sur le bouton en question...

2) lorsque je mets le code directement dans le site, dans la frame où il doit être et que je lance le site tout marche tant que je n'ai pas clické sur le lien qui fait appel à la galerie dynamique... Dès que je clique sur ce lien le fichier apparaît et marche bien, mais reste même si je click sur un autre lien du menu qui appel une autre page. (Je voudrais que la galerie s'affiche que quand on click sur le lien correspondant, et disparaisse quand on click sur un autre lien qui appel une autre page!!!)

Alors comme faire pour pallier à l'un au l'autre pb pour que je puisse en finir avec mon site et pouvoir le mettre en ligne?

Je ne suis pas très douée pour le code et où mettre le code, car je suis une créative alors je demande de l'aide juste pour cela

J'espère avoir été claire car ce n'est pas facile à expliquer...

Si jamais t'arrives à voir ce que je veux dire et me filer un coup de main, je te remercie beaucoup!!!

A + 
Messages postés
401
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
31 janvier 2010

Salut,

en fait sur ton programme principal, tu dois au moment du click :
- créer un movieclip conteneur de la galerie
- charger la galerie dans ce movieclip
- une fois chargé, aller à tel image

donc il te faut un code du genre :

var mcl:MovieClipLoader = new MovieClipLoader();
var ecouteur:Object = new Object();
var conteneur:MovieClip = this.createEmptyMovieClip("conteneur",this.getNextHighestDepth()+1);
mcl.addListener(ecouteur);
ecouteur.onLoadInit = function() {
 conteneur.gotoAndStop();
}
monBouton.onPress = function() {
 mcl.loadClip("magalerie.swf",conteneur);
}


C'est à peu près ça, j'ai peut-être fait des erreurs car je fais ça de tête rapidement. A toi de jouer pour la suite.