begin process at 2013 05 19 06:58:29
  Trouver un code source :
 
dans
 
Accueil > 

Tutoriels

 > 

ActionScripts

 > Diaporama defilant avec interaction de la souris

Diaporama defilant avec interaction de la souris


 Information sur le tutoriel

Note :
Aucune note

 Description

Diaporama permettant d'afficher les photos d'une directorie en y associant un texte et un symbol.
Les symbols sont des images externes comme les photos.
Le but etant de pouvoir modifier les donnees sans avoir a modifier la source.
Le diaporama reagit lors du passage de la souris : la photos et le texte sont agrandis, le symbol apparait et le diaporama s'arrete.
Gestion du mouvement de la souris pour changer le sens du diaporama et gestion du click.

C'est un code en Action Script 2.0.
Je suis debutante, alors si vous avez des corrections n'hesitez pas. Je n'avais pas trouver un diaporama correspondant a ce que je voulait faire et a partir de celui ci on peut varier comme on le veut.... en esperant qu'il n'y ai pas trop de fautes et que cela soit utile a quelqu'un ;)

Bon courage a tous.

Nikita

Tutorial

Je donne le code directement.

J'ai mis des commentaires et j'espere que cela sera assez clair.

Je charge les variables directement dans le code, mais elles peuvent etre chargees par un HTLM avec flashvars. Je mets ces lignes en fin de message pour la syntaxe.

Le nom des symbols sont bien sur des exemples, il y en a un du nom de "none.png" qui est une image "vide" au cas ou l'on ne veut pas de symbol sur l'image. Mais ils doivent exister au meme titre que les photos. Cela permet de modifier les symbols sans toucher au code.

Voili, voilou !!!

// Version panorama horizontal.
 // Affichage de x images + textes.
 // Redimentionnement des images.
 // Supperposition d'une image sur une autre.
 // Agrandissement de l'image et arret du diaporama au passage de la souris.
 
// definition des variables fixes
largeurDefinie = 135; // taille definie en largeur
hauteurFixe = 101;   // taille fixe en hauteur
espace = 25;   // espace entre les photos
nbr = 12;     // nombre de photos
page = 0;     // zone de repere pour le sens du defilement
taillescene = 630;   // taille de la scene 630x200
marge = 30;    // eventuelles marges de chaque cote de la scene
leslargeurs = 0;  // Largeur totale
vitesseDef = 10;  // vitesse de defilement
calcul = -(vitesseDef);

// emplacement et nom des images a charger
Chemin_photo = "D:/emplacement de travail/essai-flash/photos/promo"
Chemin_symbol = "D:/emplacement de travail/essai-flash/photos/"

// Chargement en table

var valabaURL1 = "enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html";
 valabaURL = valabaURL1.split(";"); // liens URL
var listeSymbol = "symbol-new;symbol-valentin;symbol-soldes;smily;symbol-new;symbol-valentin;symbol-soldes;smily;symbol-new;symbol-valentin;symbol-soldes;smily";
 affSymbol = listeSymbol.split(";");
var testdes = "Lampe,Lampe enfants,Decoration,Vase,Blanche Perle,Decoration,Decoration ** florale,Orchidees,Sac,Sac,Sac,Chaise";
    desi = testdes.split(","); 
var lesLargeurs = "175;155;185;135;135;135;135;135;135;135;135;135";
 largeur = lesLargeurs.split(";");
var lesHauteurs = "131;116;138;101;101;101;101;101;101;101;101;101";
 hauteur = lesHauteurs.split(";");

// Definition des tables utilisees
photos = new Array(); // pour les photos
useSymbol = new Array(); // pour les symbols
memoDesi = new Array (); // pour les textes
memoDesix = new Array (); // avec sa position
memoscale_x = new Array (); // proportion de la photo

// Creation du diaporama
this.createEmptyMovieClip("diaporama", 0);// pour les images
diaporama._y = 20;
diaporama._x = 10;

// chargement des donnees
//=================
for(var i = 0; i < nbr; i++) {
 
// calcul de redimention de l'image
pourcenthauteur = hauteurFixe/parseInt(hauteur[i]) * 100;
largeur[i] = parseInt(largeur[i]) * pourcenthauteur / 100;

// chargement des images
var mc = diaporama.createEmptyMovieClip("photo"+i, i);
mc._x = espace + leslargeurs;
leslargeurs += largeur[i] + espace;

mc.createEmptyMovieClip("conteneur", 1);
mc.conteneur.loadMovie(Chemin_photo + i + ".jpg");

mc.conteneur._yscale = pourcenthauteur;
mc.conteneur._xscale = pourcenthauteur;

// memorisation en table
photos[i] = mc.conteneur;
memoscale_x[i] = mc.conteneur._xscale; 

// chargement des symbols
mc.createEmptyMovieClip("symbol", 3);
mc.symbol._alpha = 0;
mc.symbol.loadMovie(Chemin_symbol  + affSymbol[i] + ".png");

// memorisation en table
useSymbol[i] = mc.symbol; 
mc.nombre = i;

// chargement des textes
tailleText = desi[i];
tayetext = tailleText.length * 16; // On determine la taille du texte
mc.createTextField("txtCommentaire",  100, 0, hauteurFixe, tayetext, 80);
mc.txtCommentaire.text = (desi[i]);
mep_bloc = new TextFormat();
 mep_bloc.color = 0x234567;
 mep_bloc.font ="Arial";
 mep_bloc.size = 15;
 mep_bloc.align = "left";
 mep_bloc.bold=true;
 mep_bloc.embedFonts = true;
 mc.txtCommentaire.selectable = false;
 mc.txtCommentaire.setTextFormat(mep_bloc);
 
// memorisation en table
memoDesi[i] = mc.txtCommentaire; 
memoDesix[i] = mc.txtCommentaire_x;

// Action
//=====

// Click de la souris, l'image est agrandie, on la remet normale avant le getURL
mc.onPress = function (){
 commeavant(this.nombre);
 getURL( valabaURL[this.nombre], "_blank" ); }

// Passage de la souris => agrandissement de l'image et du texte + apparition du symbol + arret du diaporama
mc.onRollOver = function() {
 agrandissement (this.nombre);
 delete onEnterFrame;
}
// Apres le passage de la souris => reaffichage des images non agrandies + remise en marche du defilement
mc.onRollOut = function () {
 onEnterFrame = faittourner;
 commeavant(this.nombre);
}
}
// Action du defilememt
onEnterFrame = function() {
 faittourner ();
}
// si on bouge la souris
onMouseMove = function() {
 if (_xmouse < (marge * 5)) {page = 0;  calcul = -(vitesseDef);}
 if (_xmouse > (taillescene -(marge * 5))) {page = 1;  calcul = vitesseDef;}
}

// Les fonctions
commeavant = function (lenombre) {
 
 // on remet comme avant, texte, photo et symbol
 mc.txtCommentaire = memoDesi[lenombre];
 mc.txtCommentaire.text = desi[lenombre];
 mep_bloc.size = 15;
 mc.txtCommentaire.setTextFormat(mep_bloc);
 mc.txtCommentaire._x = memoDesix[lenombre];
 mc.txtCommentaire._y = hauteurFixe;
  
 photos[lenombre]._x = posLar;
 photos[lenombre]._y = posHaut;
 photos[lenombre]._xscale = parseInt(memoscale_x[lenombre]);
 photos[lenombre]._yscale = parseInt(memoscale_x[lenombre]);
 
 useSymbol[lenombre]._alpha = 0;
 useSymbol[lenombre]._x = posLar2;
 useSymbol[lenombre]._y = posHaut2;
}

agrandissement = function (lenombre) {
 // on met a blanc le texte en petit et on memorise sa position
 mc.txtCommentaire = memoDesi[lenombre];
 mc.txtCommentaire.text = "";
 mc.txtCommentaire._x = memoDesix[lenombre];
 mc.txtCommentaire._y = hauteurFixe;
 // on le recharge pour l'agrandir
 mep_bloc.size = 21;
 mc.txtCommentaire.text = desi[lenombre];
 mc.txtCommentaire.selectable = false;
 mc.txtCommentaire._x = memoDesix[lenombre]-10;
 mc.txtCommentaire._y = hauteurFixe+10;
 mc.txtCommentaire.setTextFormat(mep_bloc);
 
 // agrandissement de la photo
 posLar = photos[lenombre]._x;
 posHaut = photos[lenombre]._y; 
 photos[lenombre]._x = posLar - 10;
 photos[lenombre]._y = posHaut - 10;
 photos[lenombre]._xscale = memoscale_x[lenombre] * 1.2;
 photos[lenombre]._yscale = memoscale_x[lenombre] * 1.2;
  
 // apparition du symbol
 posLar2 = useSymbol[lenombre]._x;
 posHaut2 = useSymbol[lenombre]._y; 
 useSymbol[lenombre]._alpha = 100;
 useSymbol[lenombre]._x = posLar2 - 20;
 useSymbol[lenombre]._y = posHaut2 - 20;
}

faittourner = function () {
  if (diaporama._x < (-(leslargeurs-(taillescene -(marge * 2))))) {page = 1;}
 if (page == 1) { calcul = vitesseDef; }
 else {
  if (diaporama._x < (-(leslargeurs-(taillescene -(marge * 2))))) {page = 1;}//on definit le sens
  else {page = 0;}
 }
 if (diaporama._x > marge) { page = 0;  calcul = -(vitesseDef);  }//on definit le sens
 diaporama._x  += calcul;
 diaporama2._x  += calcul;
}

==========================================================

J'espere que cela est clair.

Pour le flashvars :

Dans le HTML :

<!-- gestion animation Flash avec swfobject -->
  <script type="text/javascript" src="scriptjs/swfobject.js"></script>
  <script type="text/javascript">
   var flashvars = {};
   flashvars.liensurl ="enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html;enchainement-photo-essai.html";
   flashvars.hauteurs = "131;116;138;101;101;101;101;101;101;101;101;101";
   flashvars.largeurs = "175;155;185;135;135;135;135;135;135;135;135;135";
   flashvars.listesymbol = "symbol-new.png;symbol-valentin.png;symbol-soldes.png;none.png;symbol-new.png;symbol-valentin.png;symbol-soldes.png;smily.png;none.png;symbol-valentin.png;symbol-soldes.png;symbol-soldes.png";
   flashvars.chemin = "D:/emplacement de travail/essai-flash/photos/";
   flashvars.pictures = "promo0.jpg;promo1.jpg;promo2.jpg;promo3.jpg;promo4.jpg;promo5.jpg;promo6.jpg;promo7.jpg;promo8.jpg;promo9.jpg;promo10.jpg;promo11.jpg";
     flashvars.comments = "comment 1...;comment 2;comment 3;comment 4;comment 5;comment 6;comment 7;comment 8;comment 9;comment 10;comment 11;comment 12;";
   var params = {};
   params.bgcolor="#999999";
   var attributes = {};
   swfobject.embedSWF("panorama-horizontal.swf", "myAlternativeContent", "630", "200", "6.0.0", "expressInstall.swf", flashvars, params, attributes);
  </script>
<!-- FIN gestion animation Flash -->

Dans Action Script :

//chargement des variables externes provenant du HTML
valabaURL1 = _level0.liensurl;
 valabaURL = valabaURL1.split(";"); // liens URL
largeurss = _level0.largeurs;
 largeur = largeurss.split(";"); // largeur des photos
hauteurss = _level0.hauteurs;
 hauteur = hauteurss.split(";"); // hauteur des photos
chemin_image = _level0.chemin; // chemin image
picture = _level0.pictures;
 name_photo = picture.split(";"); // nom photo
testdes = _level0.comments;
 desi = testdes.split(";"); // designasion
affSymbolre = _level0.listesymbol; // symbol
 affSymbol = affSymbolre.split(";");

Voila !

Si des choses ne sont pas clair, n'hesitez pas a poser des questions, j'essayerai de repondre, dans la mesure de mes capacites ... qui ne sont pas enorme en Action Script !!!

Merci a vous !

Commentaires

Commentaire de Orange73 le 26/03/2009 12:30:44

Une chose qui me saute aux yeux :

Pourquoi pas de gestion via XML au lieu des flashvars ?

Commentaire de nikitaetshiva le 26/03/2009 13:57:58

OUI, tout a faire, c'est pour la prochaine version !!!!

Commentaire de petitspouces le 14/12/2009 18:24:43

Bonsoir
Une question complètement idiote mais digne d'un néophyte parfait.
Comment utiliser ce code ?
C'est exactement ce que je cherchais mais je suppose qu'il ne suffit pas d'en faire un copier-coller sur une page html.
Ne vous moquer pas, il faut bien apprendre avant de savoir !!!

Commentaire de nonob25 le 30/12/2009 23:12:22

merci Dresde

Commentaire de lydwine le 02/04/2010 02:10:16

non mais  franchement je plein les personnes qui n'ont pas flash et en plus une copie d'écran éviterai de perdre son temps à comprendre à quoi ça ressemble

Commentaire de jaidyassine le 08/10/2010 11:55:32

merci prof

Commentaire de moutonblack le 07/03/2011 14:46:31

merci bien

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales