Galerie en flash

ptitemimie05 Messages postés 13 Date d'inscription jeudi 26 juillet 2007 Statut Membre Dernière intervention 16 janvier 2009 - 6 juin 2008 à 12:29
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011 - 7 juin 2008 à 19:20
Bonjour,
Je postes ici car je recherche de l'aide pour faire un galerie en flash. En ce moment je suis en train de faire une galerie en flash avec fichier XML sauf que je souhaiterai avoir une galerie avec la grande image et à droite ET à gauche de celle ci avoir les miniature sur lesquelles on clique pour avoir la grande image.

Car en ce moment je n'ai, avec le fichier XML que une (ou plusieur colonne) soit sur la droite soit sur la gauche mais pas les deux en même temps. Est ce possible ? si oui pouvez-vous m'aider.

Merci d'avance à tous

12 réponses

kix484 Messages postés 79 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 24 juin 2010
6 juin 2008 à 13:52
salut.
Perso, je trouve ton explication completement confuse. Je n'ai pas compris ton pbleme.
Si tu mettais un bout de code ou ca blok ca serait bienvenue aussi.

Sinon mm si j ai pas bien compris ca a l air possible
0
ptitemimie05 Messages postés 13 Date d'inscription jeudi 26 juillet 2007 Statut Membre Dernière intervention 16 janvier 2009
6 juin 2008 à 14:25
désolé je vais réexpliquer en gros je voudrai des miniature d'image (sur lesquelles on clique pour voir le zoom d'une des miniature ...galerie quoi lol) mais jaimerai avoir une succession de miniature à droite et à gauche de l'endroit ou la grande image apparait.

Actuellement je travail avec un flash qui appel un .as qui appel un .xml donc je ne sais pas si c sur le xml ou le as qui faut touché pour pouvoir parametrer cela.

Voila si quelquun à une idée j'enverrai les fichier sources.

Merci d'avance et dite moi si tout est compris ^^
0
kix484 Messages postés 79 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 24 juin 2010
6 juin 2008 à 15:00
C'est dans le actionscript.
Bamlance les sources voir
0
ptitemimie05 Messages postés 13 Date d'inscription jeudi 26 juillet 2007 Statut Membre Dernière intervention 16 janvier 2009
6 juin 2008 à 16:12
// SETTING VARIABLES
currentpage = 1;
_global.whichalbum = 1;
bigframew = 1100;
bigframeh = 220;
//////////////////////////////////
function scalerf(w,h)

 diffw = (w-bigframew);
 diffh = (h-bigframeh);
 
 if (diffw<=0 && diffh<=0)
 {
  scaler = 1*100;
 }
 else if (diffw == Math.max(diffw, diffh))
 {
  //scale to height
  scaler = (bigframew/w)*100;
 }
 else if (diffh == Math.max(diffw, diffh))
 {
  //scale to width
  scaler = (bigframeh/h)*100;
 }
 return scaler;
}
//LOADCLIP ACTIVITIES
_root.createEmptyMovieClip("looploop", -1000);
var my_mcl = new MovieClipLoader();
myListener = new Object();
myListener.onLoadStart = function(target_mc) {
 var loadProgress = my_mcl.getProgress(target_mc);
};
myListener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
 ////////////////////////////////////////////////////////
 // FOR PRELOADER PURPOSES
 loaded = loadedBytes;
 total = totalBytes;
 percentage = Math.round(100*(loaded/total));
 progressbar_mc.progresser_mc._xscale = percentage;
 ////////////////////////////////////////////////////////
};
myListener.onLoadComplete = function(target_mc) {
 var loadProgress = my_mcl.getProgress(target_mc);
 imageframe_mc.hold._alpha = 0;
 velo = 0;
 imageframe_mc.hold.onEnterFrame = function() {
  w = imageframe_mc.hold._width;
  h = imageframe_mc.hold._height;
  if (w != 0 && h != 0) {
   scaler = scalerf(w, h);
   if (scaler != 100) {
    imageframe_mc.hold._xscale = scaler;
    imageframe_mc.hold._yscale = scaler;
   }
   imageframe_mc.hold._x = (bigframew-(w*(scaler/100)))/2;
   imageframe_mc.hold._y = (bigframeh-(h*(scaler/100)))/2;
   if (imageframe_mc.hold._alpha<100) {
    accel = 0.3;
    velo = velo+accel;
    imageframe_mc.hold._alpha += velo;
   }
  }
 };
};
myListener.onLoadInit = function(target_mc) {
 //target_mc._width = 100;
 //target_mc._width = 100;
};
myListener.onLoadError = function(target_mc, errorCode) {
};
my_mcl.addListener(myListener);
///////////////////////////////////////////////////////////////
// XML PARSING
function imageListLoaded(whichalbum) {
 //clear stage
 for (var rr = 0; rr<noofrow*noofcolumn; rr++) {
  rr = rr+pageindex;
  this["thumbframe"+rr].removeMovieClip();
  this["thumbframein_mc"+rr].removeMovieClip();
  rr = rr-pageindex;
 }
 //parameters
 param = this.imageList_xml.firstChild.firstChild;
 pc = int(param.attributes.noofcolumn);
 pr = int(param.attributes.noofrow);
 ptx = int(param.attributes.thumbxs);
 pty = int(param.attributes.thumbys);
 _global.ptw = int(param.attributes.thumbwidth);
 _global.ptl = int(param.attributes.thumbheight);
 ////////////////////////////////////////////////////////////// 
 var albumCountXML = this.imageList_xml.firstChild.childNodes;
 albumCount = albumCountXML.length-1;
 var mainNode = this.imageList_xml.firstChild.childNodes[whichalbum].firstChild;
 var listBoxData = createResourceList(mainNode.childNodes, pc, pr, ptx, pty, ptw, ptl);
 albumtextbox.text = "album"+whichalbum+">>>";
 albumtextbox.background = true;
 albumtextbox.backgroundColor = 0xCB319A;
 for (t=1; t<=albumCount; t++) {
  /////////////////////////////////////////////////////////////
  //Creating text box
  this.createEmptyMovieClip("albumnames"+t, 900+t);
  albumname_mc = this["albumnames"+t];
  albumname_mc.createTextField("albumnametxt"+t, 1000+t, 0, 110, 220, 20);
  var my_fmt:TextFormat = new TextFormat();
  my_fmt.color = 0xF02038;
  my_fmt.font = "Verdana";
  my_fmt.size = 10;
  albumname_mc["albumnametxt"+t].text = this.imageList_xml.firstChild.childNodes[t].attributes.albumname;
  albumname_mc["albumnametxt"+t].setTextFormat(my_fmt);
  albumname_mc._x = 470;
  albumname_mc._y = t*0;
  albumname_mc.sett = t;
  albumname_mc.onRelease = function() {
   currentpage = 1;
   filename.text = "";
   for (var rr = 0; rr<noofrow*noofcolumn; rr++) {
    rr = rr+pageindex;
    this["thumbframe"+rr].removeMovieClip();
    this["thumbframein_mc"+rr].removeMovieClip();
    rr = rr-pageindex;
   }
   imageListLoaded(this.sett);
   _global.whichalbum = this.sett;
  };
 }
}
function createResourceList(resource_array, noofcolumn, noofrow, thumbxs, thumbys, thumbwidth, thumblength, bigimagewidth) {
 _global.noofcolumn = noofcolumn;
 _global.noofrow = noofrow;
 var listData = new DataProviderClass();
 resourceCount = resource_array.length;
 noofpage = Math.ceil(resourceCount/(noofcolumn*noofrow));
 ofof.text = "page: "+currentpage+"/"+noofpage;
 var resource, image, tmb;
 images = new Array();
 infotexts = new Array();
 pageindex = ((currentpage-1)*noofrow*noofcolumn);
 for (var r = 0; r<noofrow; r++) {
  for (var c = 0; c<noofcolumn; c++) {
   i = (r*noofcolumn)+c+pageindex;
   if (i<resourceCount) {
    nodigits = new String(resourceCount);
    resource = resource_array[i];
    images[i] = resource.attributes.imagename;
    infotexts[i] = resource.attributes.infotext;
    loadme = "visu1/thumbs/"+images[i];
    findme = images[i];
    whichframe = "frame"+i;
    this.attachMovie("thumbframe", "thumbframe"+i, i+1);
    this["thumbframe"+i]._x = (c*thumbwidth)+thumbxs;
    this["thumbframe"+i]._y = (r*thumblength)+thumbys;
    createEmptyMovieClip("thumbframein_mc"+i, (i+1)*1000);s
    onEnterFrame = function () {
     for (var tr = 0; tr<noofrow; tr++) {
      for (var tc = 0; tc<noofcolumn; tc++) {
       ti = (tr*noofcolumn)+tc+pageindex;
       if (ti<resourceCount) {
        tw = this["thumbframein_mc"+ti]._width;
        th = this["thumbframein_mc"+ti]._height;
        this["thumbframein_mc"+ti]._x = this["thumbframe"+ti]._x+(thumbwidth-tw)/2;
        this["thumbframein_mc"+ti]._y = this["thumbframe"+ti]._y+(thumblength-th)/2;
       }
      }
     }
    };
    this["thumbframein_mc"+i].loadMovie(loadme);
    noofthumbs = (currentpage-1)*noofcolumn*noofrow;
    nom = noofthumbs;
    callbig(nom);
    this.filename.text = " "+images[nom];
    this["thumbframe"+i].onPress = function() {
     startsubstring = 10;
     endsubstring = startsubstring+nodigits.length;
     largeindex = this._name.substring(startsubstring, endsubstring);
     callbig(largeindex);
    };
   }
  }
 }
}
function callbig(index) {
 filename.text = " "+images[index];
 info.text = infotexts[index];
 imageframe_mc.createEmptyMovieClip("hold", 0);
 my_mcl.loadClip("visu1/largeimages/"+images[index], this.imageframe_mc.hold);
 //imageframe_mc.onPress = function()
 //{getURL("galleries/06 Aout 2007/pics/"+images[index],"_blank");} 
}
imageList_xml = new XML();
imageList_xml.ignoreWhite = true;
imageList_xml.onLoad = function(success) {
 if (success) {
  imageListLoaded(whichalbum);
 }
};
//////////////////////////////////////////
//HERE IS WHERE YOU DECLARE YOUR XML FILE
imageList_xml.load("visu1/albums1.xml");
//////////////////////////////////////////
rightbt.onRelease = function() {
 if (currentpage != noofpage) {
  currentpage++;
  imageListLoaded(_global.whichalbum);
 }
};
leftbt.onRelease = function() {
 if (currentpage>1) {
  currentpage--;
  imageListLoaded(_global.whichalbum);
 }
};
stop();
0

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

Posez votre question
kix484 Messages postés 79 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 24 juin 2010
6 juin 2008 à 17:01
Bon je dirai  qu il faut que tu procedes ainisi.

Tu definis un nombre maxd'images qui s 'afficha a gauche, 10 par exemple.

Lorsque les icones se dupliquent tu dis que si y en a plus que 1à et bien le _x des vignettes augmentent ce qui va les placer sur la droite.

for (i =0;i<monNombreDeVignette;i++){
    _root.Vignette.duplicateMovieClip("vig"+i,i);
    if(i>10){
    _root["vig"+i]._x = 0;
    }
    else{
_root["vig"+i]._x = 500;
    }
}
0
ptitemimie05 Messages postés 13 Date d'inscription jeudi 26 juillet 2007 Statut Membre Dernière intervention 16 janvier 2009
6 juin 2008 à 17:15
Merci pour ta réactivité mais je n'ai pas compris quelque trucs.

Quand tu parles de Vignette c l'occurrence de quoi ? de plus le nombre maxi de miniature est défini dans le fichier XML (code xml >><?xml version="1.0"?>

 
 
  
   
   
   
   
   
   
   
  
 

de plus le bout de code que tu me donne ou dois-je le mettre dans le fichier AS ??

Merci pour ton aide et désolé de ces questions qui peuvent etre bete ...mais je ne code pas moi même ...
0
kix484 Messages postés 79 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 24 juin 2010
6 juin 2008 à 17:44
Nan en fait il faut que tu arrives a recuperer le nombre d'image qu'il y a dans ton XML grace a actionscript.
L'ideal serait de stocker tous les données du xml dans un tableau.
apres en recupperant la longueur du tableau (ou le nombre de case) grace à "length" (longueurDuTableau= tableau.length)
Tu sais combien il y a d'images.

Apres je suppose que tes vignettes st dupliqués dynamiquement. Tu definis donc un nombre max de vignette qui peuvent se mettre a gauche, apres ca passe a droite.

En fait le code que je t ai donné est la boucle qui va dupliquer tes clip de vignette.

Voila j espere que c est un peu plus clair
0
ptitemimie05 Messages postés 13 Date d'inscription jeudi 26 juillet 2007 Statut Membre Dernière intervention 16 janvier 2009
6 juin 2008 à 17:50
oula non tu m'as perché !!! un tableau dans le XML ?? je sais visuellement que il faut pas plus de 6 vignette en hauteur ... pourquoi un tableau ? Et ensuite dans otn code vignette c une occurrence ou quoi dautre ??j'avou que la ca deviens trop complexe pour ma petite tete lolol
0
kix484 Messages postés 79 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 24 juin 2010
6 juin 2008 à 17:51
Pour etre concret il me semble que c est la qu il fo intervenir (partie entre les smileys)

for (t=1; t<=albumCount; t++) {
        /////////////////////////////////////////////////////////////
        //Creating text box
        this.createEmptyMovieClip("albumnames"+t,900+t);
        albumname_mc = this["albumnames"+t];
        albumname_mc.createTextField("albumnametxt"+t,1000+t,0,110,220,20);
        var my_fmt:TextFormat = new TextFormat();
        my_fmt.color = 0xF02038;
        my_fmt.font = "Verdana";
        my_fmt.size = 10;
        albumname_mc["albumnametxt"+t].text = this.imageList_xml.firstChild.childNodes[t].attributes.albumname;
        albumname_mc["albumnametxt"+t].setTextFormat(my_fmt);
      
       nombreMaxAGauche=10;
        if(t>nombreMaxAGauche){
        //a gauche
        albumname_mc._x = 470;
       } else{
        //a droite
       albumname_mc._x = 800;
        }
      
        albumname_mc._y = t*0;
        albumname_mc.sett = t;
        albumname_mc.onRelease = function() {
            currentpage = 1;
            filename.text = "";
            for (var rr = 0; rr<noofrow*noofcolumn; rr++) {
                rr = rr+pageindex;
                this["thumbframe"+rr].removeMovieClip();
                this["thumbframein_mc"+rr].removeMovieClip();
                rr = rr-pageindex;
            }
            imageListLoaded(this.sett);
            _global.whichalbum = this.sett;
        };
    }
0
kix484 Messages postés 79 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 24 juin 2010
6 juin 2008 à 17:52
Quand je parlais d un tableau, je disais un tablo dans l'as
0
ptitemimie05 Messages postés 13 Date d'inscription jeudi 26 juillet 2007 Statut Membre Dernière intervention 16 janvier 2009
6 juin 2008 à 18:19
euh je viens de testé mais cela ne fonctionne pas ... le surplus de vignette sont toujours à gauche mais tu y accede avec des fleche gauche et droite...  bon sinon ne te casse pas la tete je vais trouvé une alternative plus terre à terre ... merci tout de même pour ton aide
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
7 juin 2008 à 19:20
Je suis intéréssé par ta source. Ou as-tu trouvé ce code ? merci.
0
Rejoignez-nous