Accueil > Forum > > > > Problème dans une gallerie
Problème dans une gallerie
jeudi 1 avril 2010 à 21:45:48 |
Problème dans une gallerie

Irokwa
|
Bonsoir,
j'essaye de faire une galerie avec des tutos mais le tuto que j'utilise qui me convient le mieux à plusieurs points que je souhaite changer. J'ai réussis à obtenir ce que je voulais pour la plupart des choses qui ne me convenaient pas mais il y en a un particulièrement gênant qui me pose de gros problèmes.
En effet lorsque l'on clique sur une image dans la galerie pour l'agrandir il faut maintenir le clic pour que l'image sois en grande taille, et lorsqu'on lâche l'image redevient plus petite et reprend sa place dans la galerie (je précise que lorsque cette image est en pleine taille on peut la balader partout sur l'écran, ce qui n'a pas grand intérêt pour moi). Le problème c'est que j'aimerais que l'image s'agrandisse seulement quand on clique dessus, et reprenne sa petite taille et position dans la galerie sois lorsqu'on re-clique dessus, sois lorsque l'on clique sur une autre image de la galerie. J'ai essayer de bidouiller pas mal ce code mais impossible de trouver la solution...
Quelqu'un pourrait-il, s'il vous plaît m'aider?
|
|
lundi 5 avril 2010 à 18:37:50 |
Re : Problème dans une gallerie

BBFUNK01
|
Hello,
d'après tes explications on peut imaginer que lorsque tu fais un "onPress" sur une des miniatures de ta galerie ça agrandit l'image en question, et lors du "onRelease" l'image reprend sa taille miniature. Pour bien faire il faudrait que tu fasses un "LoadMovie()" sur chaque image miniature, ce qui inclut le fait, dans l'idéal, de stocker la liste de tes images dans un xml.
Mets dans ton post le code que tu utilises pour afficher en grand tes images, ça permettra à ceux qui consultent ton post d'avoir les détails pour t'aider :).
A plus,
BBFUNK01
|
|
lundi 5 avril 2010 à 23:52:10 |
Re : Problème dans une gallerie

Irokwa
|
Bonsoir,
tout d'abord merci pour cette réponse je n'y croyait plus. ^^
Je ne sais pas si je peux faire de l'image par image, car en fait j'ai juste copier coller le code du tuto, corrigé les valeurs pour les adaptées à mon site, et sinon tout s'affiche tout seul, je n'ai qu'a entré le nom de l'image dans un XML, et sur mon clip je n'ai qu'une image clé avec le code qui suit, aucun autre élément. Je n'ai commencé Flash qu'en février en cours donc je galère un peu.
Je récapitule donc, le code marche parfaitement, j'aimerais seulement n'avoir qu'à cliquer une fois sur l'image pour qu'elle s'affiche, et cliquer de nouveau pour qu'elle redevienne miniature. Si c'est possible j'aimerais aussi supprimer le genre de clignotement de l'image lorsqu'on l'ouvre.
J'ai cherché à modifier pas mal de lignes de ce code mais sans succès, il à vraiment l'air compliqué.
Voici le code:
import mx.transitions.*;
_global.thisX = -350;
_global.thisY = -200;
_global.stageWidth = -350;
_global.stageHeight = -200;
var gallery_xml:XML = new XML();
gallery_xml.ignoreWhite = true;
gallery_xml.onLoad = function(success:Boolean) {
try {
if (success) {
var images:Array = this.firstChild.childNodes;
var gallery_array:Array = new Array();
for (var i = 0; i<images.length; i++) {
gallery_array.push({src:images[i].firstChild.nodeValue});
}
displayGallery(gallery_array);
} else {
throw new Error("Unable to parse XML");
}
} catch (e_err:Error) {
trace(e_err.message);
} finally {
delete this;
}
};
gallery_xml.load("GallerieInfo.xml");
function displayGallery(gallery_array:Array) {
var galleryLength:Number = gallery_array.length;
for (var i = 0; i<galleryLength; i++) {
var thisMC:MovieClip = this.createEmptyMovieClip("image"+i+"_mc", i);
mcLoader_mcl.loadClip(gallery_array[i].src, thisMC);
preloaderMC = this.attachMovie("preloader_mc", "preloader"+i+"_mc", 5000+i);
preloaderMC.bar_mc._xscale = 0;
preloaderMC.progress_txt.text = "0%";
thisMC._x = _global.thisX;
thisMC._y = _global.thisY;
preloaderMC._x = _global.thisX;
preloaderMC._y = _global.thisY+20;
if ((i+1)%5 == 0) {
_global.thisX = -350;
_global.thisY += 150;
} else {
_global.thisX += 90+10;
}
}
}
var mcLoader_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadStart = function() {
};
mclListener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
var pctLoaded:Number = Math.round(loadedBytes/totalBytes*100);
var preloaderMC = target_mc._parent["preloader"+target_mc.getDepth()+"_mc"];
preloaderMC.bar_mc._xscale = pctLoaded;
preloaderMC.progress_txt.text = pctLoaded+"%";
};
mclListener.onLoadInit = function(evt:MovieClip) {
evt._parent["preloader"+evt.getDepth()+"_mc"].removeMovieClip();
var thisWidth:Number = evt._width;
var thisHeight:Number = evt._height;
var borderWidth:Number = 2;
var marginWidth:Number = 8;
evt.scale = 20;
evt.lineStyle(borderWidth, 0x000000, 100);
evt.beginFill(0xFFFFFF, 100);
evt.moveTo(-borderWidth-marginWidth, -borderWidth-marginWidth);
evt.lineTo(thisWidth+borderWidth+marginWidth, -borderWidth-marginWidth);
evt.lineTo(thisWidth+borderWidth+marginWidth, thisHeight+borderWidth+marginWidth);
evt.lineTo(-borderWidth-marginWidth, thisHeight+borderWidth+marginWidth);
evt.lineTo(-borderWidth-marginWidth, -borderWidth-marginWidth);
evt.endFill();
evt._xscale = evt.scale;
evt._yscale = evt.scale;
evt._rotation = 0;
evt.onPress = function() {
this.startDrag();
this._xscale = 100;
this._yscale = 100;
this.origX = this._x;
this.origY = this._y;
this.origDepth = this.getDepth();
this.swapDepths(this._parent.getNextHighestDepth());
this._x = (_global.stageWidth-evt._width+30)/2;
this._y = (_global.stageHeight-evt._height+30)/2;
mx.transitions.TransitionManager.start(this, {type:mx.transitions.Photo, direction:0, duration:1, easing:mx.transitions.easing.Strong.easeOut, param1:empty, param2:empty});
};
evt.onRelease = function() {
this.stopDrag();
this._xscale = this.scale;
this._yscale = this.scale;
this._x = this.origX;
this._y = this.origY;
};
evt.onReleaseOutside = evt.onRelease;
};
mcLoader_mcl.addListener(mclListener);
|
|
mardi 6 avril 2010 à 02:33:06 |
Re : Problème dans une gallerie

BBFUNK01
|
Re,
bon et bien effectivement c'est ce que je pensais : c'est sur ton "onPress" et "onRelease" qu'il faut faire des modifications.
A la rigueur, tu peux même te passer du "onPress" et mettre toute la fonction pour charger l'image dans ton "onRelease".
Le tout après c'est de définir si tu charges en "grand" la même image qui est chargée en "petit" (en miniature quoi), car le mieux por un diaporama pas trop lourd, c'est de charger de petites images pour les miniatures, du genre des images de 80x80 pixels, et d'avoir des images plus grandes pour charger les images en "plein écran", du genre des images de 600x600 pixels. Bref, le mieux c'est de dissocier les 2, tu gagneras en légèreté pour ton animation.
Donc c'est sur cette fonction qu'il faut que tu fasses des modifications :
Code ActionScript : evt.onRelease = function(){
...fonction...
}
et la solution à ton problème je l'ai trouvé il y a peu :
Centrer une image avec MovieClipLoader
jettes-y un oeil et fais le test, ça devrait te convenir. Par contre supprime ta fonction "evt.onPress()", elle ne contient que des paramètres permettant de dragger ton image et de l'afficher plus grand.
A plus,
BBFUNK01
|
|
vendredi 9 avril 2010 à 17:06:03 |
Re : Problème dans une gallerie

martinearth
|
Salut Irowka, Bon je me lance 1th time!
je cherche moi aussi à apprendre l'action Script mais je parts avec un gros handicap je suis graphiste dessinateur de formation et une fille de surcroit; bref j'ai un peu de mal, pourrais tu donner l'adresse de ton tuto. Ca fait un semaine que je suis dessus,  j'ai trouvé des galerie déjà faite sur le site et qui sont très bien  ; mais question explications je capte Z.
J'ai essayée de bidouiller un truc mais il me renvoie une erreur si quelqu'un pouvait me dire ce qui cloches se serait sympa.Il renvoie cette info en sortie quand on clique sur la thumb.
Merci de votre attention et patience avec une novice.
Code :
TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.
at test_fla::MainTimeline/resizeHandler()
Code ActionScript : import fl.controls.TileList;
import fl.data.DataProvider;
import fl.controls.ScrollBarDirection;
import fl.events.ComponentEvent;
import fl.containers.UILoader;
import fl.controls.Button;
var dossierImage:String = 'images/';
var dossierImageMini:String = 'images/min/';
var monXML:XML = <galerie>
<image src="underwater.jpg" alt="DepthCore - Underwater (David)" />
<image src="retro_pheromone.jpg" alt="DepthCore - Retro Pheromone (Jinberdeem)" />
<image src="hocus_pocus.jpg" alt="DepthCore - Hocus pocus (Surpy)" />
<image src="torment.jpg" alt="DepthCore - Torment (Radu Pop)"/>
<image src="lola.jpg" alt="DepthCore - Lola (Caramelow)" />
<image src="delicacy.jpg" alt="DepthCore - Delicacy (Rogue)" />
<image src="local_seduction.jpg" alt="DepthCore - Local seduction (Jinberdeem)" />
<image src="corrindon.jpg" alt="DepthCore - Blok party (83Grafik)"/>
<image src="casapaco.jpg" alt="DepthCore - Blok party (83Grafik)"/>
<image src="carrelage.jpg" alt="DepthCore - Blok party (83Grafik)" />
<image src="renault.jpg" alt="DepthCore - Blok party (83Grafik)" />
<image src="autoplus.jpg" alt="DepthCore - Blok party (83Grafik)" />
<image src="blok_party.jpg" alt="DepthCore - Blok party (83Grafik)"/>
<image src="lola.jpg" alt="DepthCore - Lola (Caramelow)" />
<image src="delicacy.jpg" alt="DepthCore - Delicacy (Rogue)" />
<image src="local_seduction.jpg" alt="DepthCore - Local seduction (Jinberdeem)" />
<image src="corrindon.jpg" alt="DepthCore - Blok party (83Grafik)" />
<image src="casapaco.jpg" alt="DepthCore - Blok party (83Grafik)"/>
<image src="carrelage.jpg" alt="DepthCore - Blok party (83Grafik)"/>
<image src="renault.jpg" alt="DepthCore - Blok party (83Grafik)"/>
<image src="autoplus.jpg" alt="DepthCore - Blok party (83Grafik)"/>
<image src="blok_party.jpg" alt="DepthCore - Blok party (83Grafik)"/>
</galerie>;
var dp:DataProvider = new DataProvider(monXML);
var myTileList:TileList = new TileList();
myTileList.dataProvider = dp;
myTileList.labelFunction = myLabelFunction;
myTileList.addEventListener(MouseEvent.MOUSE_DOWN,resizeHandler);
myTileList.sourceField = "src";
myTileList.columnWidth = 100;
myTileList.rowHeight = 67;
myTileList.columnCount = 3;
myTileList.rowCount = 6;
myTileList.move(10, 10);
addChild(myTileList);
function myLabelFunction(item:Object):String {
var fileName:String = item.src;
var filePath:Array = fileName.split("/");
return filePath.pop();
}
function resizeHandler(event:MouseEvent):
void {
var myImg:UILoader = event.currentTarget as UILoader;
myImg.source = dossierImage+monXML.image[1].attribute("src");
var newX:uint = (stage.stageWidth - myImg.width) / 2;
var newY:uint = (stage.stageHeight - myImg.height) / 2;
myImg.move(newX, newY);
}
|
|
mardi 13 avril 2010 à 03:27:29 |
Re : Problème dans une gallerie

Irokwa
|
Bonsoir,
merci à toi BBFUNK01 pour m'avoir apporté ton aide j'ai finalement réussit par m'en sortir.
martinearth: Yep, alors le tuto viens de ce site même, et le voici le lien:
http://www.flashkod.com/codes/PHOTOTHEQUE-MOZAIQUE-TWEEN_43413.aspx
|
|
Cette discussion est classée dans : problème, taille, image, clique, galerie
Répondre à ce message
Sujets en rapport avec ce message
Problème avec Gallery photo [ par massdell ]
Bonjour à tous,J'ai chercher dans les différentes partie de flashkod mais pas moyen de trouver la réponse, c'est pourquoi je poste ce message suivant.
galerie photos flash problème taille [ par sleepless_2101 ]
boujourj'ai trouvé une galerie photos en flash, et je l'aie un peu modifiée pour l'adapter à ce que je voulais en faire. mais je me suis rendu compte
Problème sur une galerie AS3, simple ne faisant pas appel à un XML [ par Geoffbulbe ]
Bonjour à tous, Je suis nouveau dans le monde de l'AS3 (3j...), et je me casse bien les dents dessus. Je souhaite réaliser une galerie tout ce qu'il
problème affichage galerie xml [ par lefouill ]
J'ai un problème bizarre que je n'arrive pas à résoudre : J'ai une galerie xml qui se charge dans un fullflash à partir d'un swf externe. Lors de la
Comment [ par kenott ]
Bonjour, Je débute dans la création d'animation en flash et je bute sur un truc tout bête, mais je ne trouve la solution nul part.. Je viens de crée
Loader ne redimensionne pas toujorus l'image avec scale On [ par RyoSaebaSG1 ]
Bonjour à tous, alors voilà j'ai un problème un peut particulier, j'ai dans un fla un MovieClip, qui contient notament un Loader (Elément mxLoader),
Problème avec les caractères [ par figueline ]
Bonjour à tous ! J'ai un problème avec les caractères accentués. J'ai inséré du texte dans un fichier xml. Aussi, lorsque j'ai lancé l'anim. les à,é,
Taille d'un clip [ par JonFever ]
Bonjour ! Je viens donc poster un message ici car j'ai un problème avec un de mes projets sur lequel je travail en ce moment : un jeu de point'n'clic
Loader : chargement de fichier dont le nom contient un "%" [ par thenaoh ]
Bonjour, Je suis face à un problème tout bête : je veux charger avec un Loader une image jpg, dont le nom contient un "%", grâce au code suivant : [
Galerie swf animés (AS2) [ par HappyBlueFrog ]
Bonjour tlm! Alors voila malgré mes très très nombreuses recherches sur internet, je n'arrive pas à trouver une solution à mon problème. [u]Donc j
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|